本来想工作线程工作结束后发送个消息给主线程,确认工作已完成。
于是我在线程函数的结尾处添加入下列代码:
::PostMessage((HWND)(GetMainWnd()->GetSafeHwnd()),WM_TTFINISHED,NULL,NULL);//通知主线程TT已完成
但是GetMainWnd()函数在这里用不成,也就是不知道怎么得到主对话框的句柄......................
于是我在线程函数的结尾处添加入下列代码:
::PostMessage((HWND)(GetMainWnd()->GetSafeHwnd()),WM_TTFINISHED,NULL,NULL);//通知主线程TT已完成
但是GetMainWnd()函数在这里用不成,也就是不知道怎么得到主对话框的句柄......................
要不然就用事件
主线程WaitForSingleObject 子线程完了就SetEvent
其他的线程同步都较麻烦的样子 *_*
==================================
另外的办法是可以用全局变量
CWnd* pMain = AfxGetMainWnd();
之后在线程里用这个全局变量发消息也可以,但是这么做不好
此外,也可以直接用theApp.m_pMainWnd,theApp是MFC程序中的全局变量,各种方法创建的线程都可以使用。
AfxGetMainWnd 或者用全局变量把this保存一下也可以。