15,473
社区成员




CWinThread *pThread = AfxBeginThread(ThreadFunc, (LPVOID)&m_strFilePath, 0, CREATE_SUSPENDED);
m_hThread = pThread->m_hThread; //m_hThread是成员变量
pThread->ResumeThread();
TRACE(_T("OnInit, %x\n"), m_hThread);
TRACE(_T("OnClose, %x\n"), m_hThread);
DWORD dRes = WaitForSingleObject(m_hThread, INFINITE);//概率性卡在这里,此时线程已退出
ASSERT(WAIT_OBJECT_0 == dRes || WAIT_FAILED == dRes);
m_pThread = AfxBeginThread(ThreadFunc, (LPVOID)&m_strFilePath, 0, CREATE_SUSPENDED); //m_pThread是成员变量
m_pThread->m_bAutoDelete = FALSE;
m_pThread->ResumeThread();
DWORD dRes = WaitForSingleObject(m_pThread->m_hThread, INFINITE);
m_pThread->m_bAutoDelete = TRUE;
CWinThread *pThread = AfxBeginThread(ThreadFunc, (LPVOID)&m_strFilePath, 0, CREATE_SUSPENDED);
m_hThread = pThread->m_hThread; //m_hThread是成员变量
pThread->m_bAutoDelete = FALSE;
pThread->ResumeThread();
TRACE(_T("OnInit, %x\n"), m_hThread);
UINT CRuleBlockCheck::ThreadFunc( LPVOID lpParam )
{
CString& strPath = *(CString*)lpParam;
CStdioFile file;
if (!file.Open(strPath, CFile::modeReadWrite))
{
::PostMessage(m_hDlgWnd, WM_THREAD_MESSAGE, eOpenFail, NULL);
return 0;
}
//文件存在,其它操作
}