开启一个线程读串口数据,cpu 100%?
孙鑫老师十五章最后一个例子,多线程+网络编程,线程函数里有一个while死循环,为什么cpu 不是100%,是不是因为recvfrom是阻塞的,程序运行到这就停了,等到线程的时间用完了,就回到主线程,不会一直占用cpu?我写了一个读串口的线程,用的是同步,为什么cpu 是100%,函数如下:
UINT CTestDlg::ComProc(LPVOID pParam)
{
HWND Hdlg=(HWND)pParam;
while(1)
{
//Sleep(1);
char str[1024];
memset(str,'\0',1024);
DWORD wCount=0;//读取的字节数
BOOL bReadStat;
bReadStat=ReadFile(m_hCom23,str,1024,&wCount,NULL);
if(bReadStat)//*/
if(wCount>0)
{
::SetDlgItemText(Hdlg,IDC_EDIT_RECV,str);
}
}
return 0;
}