首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MSCOMM控件和线程有关问题

2012-02-17 
MSCOMM控件和线程问题一个基于对话框的串口通信程序,使用MSCOMM控件。在主对话框类里定义:CMScommm_com使

MSCOMM控件和线程问题
一个基于对话框的串口通信程序,使用MSCOMM控件。
在主对话框类里定义:CMScomm   m_com;
使用向导添加处理函数:OnCommMscomm();

我现在的问题是:
正常情况:如果在主线程中打开、设置串口,则OnCommMscomm()能够响应串口数据。
异常情况:如果我在一个新起的子线程中打开、设置串口,如果线程没有结束,则OnCommMscomm()能够响应串口数据。如果此子线程结束,则OnCommMscomm()不响应串口数据。

如果调用m_com.GetPortOpen()查看串口状态,却又是打开的!
m_com作为主对话框类成员,对该类来说应该是共享的,即使是在新启动的线程中打开,应该对整个类有效。只要我没在线程中关闭串口,即使线程结束,在该类的其它成员眼中,串口应该是处在打开并有效地状态吧?

不解,是否是对线程理解有误?望各位见解一下,谢谢

[解决办法]
MSCOMM控件不能和线程同时使用,使用CSerialPort类
[解决办法]
MSCOMM控件不支持多线程

热点排行