读书人

WaitForSingleObject没法起作用

发布时间: 2013-07-11 15:38:46 作者: rapoo

WaitForSingleObject无法起作用


HANDLE h_thread;
UINT ThreadPro(LPVOID lpParam);
UINT ThreadPro(LPVOID lpParam)
{
CtestDlg *test = (CtestDlg *)lpParam;
while (1)
{
Sleep(1000);
}
return 0;
}
BOOL CtestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
h_thread=AfxBeginThread(ThreadPro,this,0,0,0);
return TRUE;
}
void CtestDlg::OnBnClickedOk()
{
WaitForSingleObject(h_thread,INFINITE);
AfxMessageBox("1");
}

为什么我按下OK按钮,马上就能弹出“1”的对话框?
h_thread的线程仍旧在运行啊!
WaitForSingleObject如何才能等h_thread的线程退出后才能继续执行下面的内容啊
[解决办法]
AfxBeginThread 返回的根本就不是线程的句柄呀, 你在上面 Wait 怎么行.
改成
h_thread=AfxBeginThread(ThreadPro,this,0,0,0)->m_hThread;
就 OK 了.
[解决办法]
HANDLE 初始化了没?
h_thread = ::CreateEvent(NULL, FALSE, FALSE, NULL);

读书人网 >C++

热点推荐