SDK串口编程 正常终止 WaitCommEvent

遇到一个问题,如果在一个线程中使用WaitCommEvent来处理RX接受中断的话,如果没有任何事件发生,程序将阻塞在WaitCommEvent一行,以至于无法正常终止线程。

 

解决方法:要使WaitCommEvent正常终止,需要使用OVERLAPPED模式在创建串口设备的时候(CreateFile)使用重叠IO的方式。

 

这样WaitCommEvent就会立即返回,再去Wait OVERLAPPED结构的hEvent,同时再创建一个线程终止的Event对象。

 

使用API,WaitForMultipleObjects来等待这两个时间。即可实现串口数据接受线程的正常退出。

posted @ 2011-02-14 23:37  OYJJ  阅读(1478)  评论(0编辑  收藏  举报