关于使用一个线程来负责串口通信的问题
我做了一个对话框程序,它的主要功能是向串口不停的收发数据,因为数据量太大,以至于把程序最小化后不能恢复过来(此程序经常占用CPU 95 % 以上)。所以我决定用另外一个线程来负责串口通信,希望能正常最大最小化程序。可是,发现还是不行,使用了线程的情况与没有使用的情况一样。
这里我给出我的方式。
CEvent g_e;//全局的
UINT Thr_Com(LPVOID pParam)//这是一个线程函数,负责串口数据传输
{
//没有使用参数pParam
g_e.ResetEvent();
......进行大数据量的串口通信
g_e.SetEvent();
return 0;
}
在主程序里面是这样的,有一个很大的for循环,每次循环中都要串口通信,即调用线程函数
for(i...)
{
AfxBeginThread(Thr_Com,NULL);
WaitForSingleObject(g_e.m_hObject, INFINITE);
......其他操作
}
请问怎么回事?谢谢!