/**************************************執行緒創建*************************************************************/
if(!SetCommMask(hCom,EV_RXCHAR))
{
AfxMessageBox(L"建立掩碼失敗");
}
hThreadEvent=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProcEven,&dwParam,0,&dwThreadID);
if(hThreadEvent==INVALID_HANDLE_VALUE)
{
AfxMessageBox(L"事件執行緒創建失敗");
}
else
{
fEventRun=true;
blnOpened=true;
}
/***********************************************************************************************************/
/**************************************執行緒函式*************************************************************/
DWORD ThreadProcEven(LPVOID pParam)
{
BYTE ah[20];
CString myStr;
DWORD dwRead,dwRes;
DWORD dwEvtMask,error;
while(fEventRun)
{
dwEvtMask=0;
Eol.hEvent=CreateEvent(NULL,true,false,NULL); //OVERLAPPED結構的EOL設定為無信號
WaitCommEvent(hCom,&dwEvtMask,&Eol); //等待發生EOL變為有信號
switch(dwEvtMask)
{
case EV_RXCHAR: //當輸入緩沖區里有一個字符時執行讀操作
{
Rol.hEvent=CreateEvent(NULL,true,false,NULL); //設定ROl為無信號
if(Rol.hEvent ==NULL)
{
AfxMessageBox(L"hEvent空");
return -1;
}
if(ReadFile(hCom,&ah,5,NULL,&Rol)) //讀出資料放入ah中
{
if(!PurgeComm(hCom,PURGE_RXCLEAR)) //清除輸入緩沖區
{
error=GetLastError();
myStr.Format(_T("ERROR coed: [%d]"),error);
AfxMessageBox(myStr); //顯示錯誤資訊
}
AfxMessageBox(L"成功讀出資料1");
}
else
{
dwRes=WaitForSingleObject(Rol.hEvent,5000); //等待讀操作完成
switch(dwRes)
{
case WAIT_OBJECT_0:
{
AfxMessageBox(L"成功讀出資料2");
if(!PurgeComm(hCom,PURGE_RXCLEAR))
{
error=GetLastError();
myStr.Format(_T("ERROR coed: [%d]"),error);
AfxMessageBox(myStr);
}
}
break;
case WAIT_TIMEOUT:
{
AfxMessageBox(L"超時");
break;
}
}
}
}
}
}
return 0;
}
/************************************************************************************************************/
/************************************************關閉執行緒******************************************************/
fEventRun=false;
CloseHandle(hThreadEvent);
/************************************************************************************************************/
除錯的時候電腦老是死機

除錯的時候360這個數一直漲一直漲到99%然后就藍屏了
這是什么原因啊?????
uj5u.com熱心網友回復:
while回圈里記憶體泄露了吧轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/124393.html
上一篇:求大神幫忙
