创建线程返回CWinApp指针,能否通过此指针判断线程是否已经关闭
- C/C++ code
CWinThread* pThread = AfxBeginThread(ThreadProc, (LPVOID)GetSafeHwnd());UINT __cdecl ThreadProc(LPVOID lParam){ HWND hWnd = (HWND)lparam; MSG msg; while(GetMessage(&msg, NULL, 0, 0)) { switch(msg.message) { case xxx: ... } TranslateMessage(&msg); DisaptchMessage(&msg); } return 0;}pThread->PostThreadMessage(WM_QUIT);.....问题1:MSDN说要结束线程用AfxEndThread或者让一个工作线程自动返回结束,此处用WM_QUIT去退出结束对不对,可是这个线程是一个工作线程吗?这样结束会不会有资源泄露
问题2:WM_QUIT响应完后能否通过pThread判断此线程是否已经退出了,调试了几次,线程退出后指针值都没变,线程句柄和几个其他成员变量都变成了0xfeeefeee,这个值是必然的吗
[解决办法]
WaitForSingleObject(pThread->m_hThread,0)
如果返回值是0就已结束