读书人

创建线程返回CWinApp指针能否通过此

发布时间: 2012-03-28 15:40:03 作者: rapoo

创建线程返回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就已结束

读书人网 >VC/MFC

热点推荐