首页/技术开发/内容

多线程技术在VC++串口通信程序中的应用

技术开发2023-08-30 阅读()
   PURGE_TXABORT);
  for (;;) file://只要线程运行,就处于监视端口行为的无限循环
  {
   bResult = WaitCommEvent(m_hComm, &Event, &m_ov);
   file://m_ov是OVERLAPPED类型的成员变量
   if (!bResult)
    { file://进行出错处理}
   else
   {
    Event = WaitForMultipleObjects(4, m_hEvent, FALSE, INFINITE);
    file://无限等待设定的事件发生,数组m_hEvent根据需要定义了须响应的接收,发送,关闭端口事件和OVERLAPPED类型的hEvent事件
    switch (Event)
    { file://读写事件的响应处理过程,在此略}
    }
    return 0;
 }

这样监控主程序就可以使用AfxBeginThread()函数来产生CommThread串口监控线程。如果要实现对所有端口的同时监控,可以分别对端口建立监控线程。

  5 小结

  作为一个机房监控系统的组成部分,本串口通信程序在VC++6.0下编译通过,在使用windows 98/NT的局域网里运行良好。

第1页  第2页  第3页  第4页  第5页  第6页  第7页  第8页 

……

相关阅读