我想请问一下 在读串口 异步操作的时候
if(GetLastError()==ERROR_IO_PENDING)
{
GetOverlappedResult(hCom,
&m_osRead,&dwBytesRead,TRUE); return dwBytesRead;
}或者:
if(GetLastError()==ERROR_IO_PENDING)
{
WaitForSingleObject(m_osRead.hEvent,2000);
PurgeComm(hCom, PURGE_TXABORT|
PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
return dwBytesRead;
}GetOverlappedResult函数和WaitForSingleObject函数的区别?还有就是这两个函数执行的时候,会一直占用cpu吗?还是会主动交出控制权,转去执行其他进程,等到传输完毕再返回向下执行?
另外,为什么GetOverlappedResult没有用PurgeComm清除缓冲区数据?
if(GetLastError()==ERROR_IO_PENDING)
{
GetOverlappedResult(hCom,
&m_osRead,&dwBytesRead,TRUE); return dwBytesRead;
}或者:
if(GetLastError()==ERROR_IO_PENDING)
{
WaitForSingleObject(m_osRead.hEvent,2000);
PurgeComm(hCom, PURGE_TXABORT|
PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
return dwBytesRead;
}GetOverlappedResult函数和WaitForSingleObject函数的区别?还有就是这两个函数执行的时候,会一直占用cpu吗?还是会主动交出控制权,转去执行其他进程,等到传输完毕再返回向下执行?
另外,为什么GetOverlappedResult没有用PurgeComm清除缓冲区数据?
解决方案 »
- windows mediea encoder 开发,取设备属性配置出错。
- 碰到一个问题,大家帮忙解决一下
- 求救,有关数据库的;
- 请教如何能够得到窗口里某个按钮的ID?
- 关于一个DCom服务器的执行问题,请各位多多提出宝贵意见?
- 请问如何动态生成(用VC编程实现)Html页面,现在是否都用xml了?我有一个程序,进行数据统计,需要将结果生成Html并保存。
- 是否有办法将TOOLBAR挂到VIew中,而不是框架中?
- 疯了,大家帮帮忙,windows me,spool32出错,epijnl30.drv出错,不能打印,outlook邮件导出时mapi出错...
- 椭圆问题(数学)
- 一个很简单的问题
- 去掉VC可缩放对话框的左上角默认图标
- 密钥与密匙有啥区别?
Long,非零表示成功,零表示失败。会设置GetLastError。如bWait为FALSE,而且异步操作仍在执行,则函数回返回零,而GetLastError会设置成ERROR_IO_INCOMPLETE
GetOverlappedResult - 参数表
参数 类型及说明
hFile Long,指定一个文件、管道或通信设备的句柄
lpOverlapped OVERLAPPED,为欲检查的I/O操作指定的一个结构
lpNumberOfBytesTransferred Long,用于容纳传输字节数量的一个变量
bWait Long,如果为TRUE,就一直等到异步操作结束才返回。FALSE表示立即返回