static UINT ThreadFun( LPVOID pParame); //监听线程
UINT CDlg::ThreadFun( LPVOID pParame )
{
//开始线程...
CDlg * pMainDlg= (CDlg *) pParame;
while(m_bThread)
{
if (!m_bRunThread)
{
Sleep(40);
continue;
}
// 开始线程工作
Sleep(3000);
}
return 0;
}
static BOOL m_bThread;
CWinThread * m_pThreadWin[2];
HANDLE m_hHandleThread[2];
/
/ 启动线程
m_bThread = TRUE;
m_bRunThreadIDCard =TRUE;
m_pThreadWin[0] = AfxBeginThread(ThreadFun, this,0,0,0,0);
m_pThreadWin[0]->m_bAutoDelete= FALSE;
m_hHandleThread[0] = m_pThreadWin[0]->m_hThread;
m_bThread = FALSE;
Sleep(200);
DWORD dwThreadRetVal = 0;
for(;;)
{
Sleep(100);
dwThreadRetVal = WaitForMultipleObjects(
1,m_hHandleThread,true, 40);
if (dwThreadRetVal != WAIT_TIMEOUT)
{
break;
}
}
for (int iThreadCount = 0; iThreadCount < 1; iThreadCount++)
{
delete m_pThreadWin[iThreadCount];
}
多线程编程
最新推荐文章于 2020-11-03 17:36:30 发布