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

 

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

 

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

 

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

相关文章:

  • 2021-09-10
  • 2021-05-08
  • 2022-01-02
  • 2022-12-23
  • 2021-04-01
  • 2021-12-26
猜你喜欢
  • 2021-09-11
  • 2021-09-04
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案