2 xiaohan005 xiaohan005 于 2013.09.17 09:00 提问

如何解决数据发送线程占用cpu过高的问题?

我在用MSComm控件的串口通信,要将接收到的数据发送至服务器。在创建线程后,由于线程处在一个while(1)循环中,两个线程cpu占用80%左右了,四个直接就100%,界面不动了,想将其改为非阻塞式的发送,该怎么修改?我这个最后可能还要再增加串口接收并发送数据,可能还需要更多线程,控件方式可以实现吗?请高手赐教!
发送线程代码如下:
DWORD WINAPI ThreadRecv3_send(LPVOID lpParameter)
{
CDatachuli2Dlg* pt;
pt = (CDatachuli2Dlg*)lpParameter;
CString strsend,data1,data2,strtemp,str;
while(1)
{

if(COM3RXData_chuli.GetLength()>33)
{

……//数据处理部分
}
return TRUE;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!