_endthread()结束线程的时候为什么会失败?
不知道那些书上有写这些东西
点击OK按钮,
onbuttonok
{
while(WaitForSingleObject(m_h,0)==WAIT_TIMEOUT)
{
return;
// h = (HANDLE)_beginthread(&ThreadStart,0,(void *)NULL);
}
m_h = (HANDLE)_beginthread(&ThreadStart,0,(void *)NULL);
}
结束按钮的时候
if(m_h!=NULL)
{
_endthread(); //为什么到这里会出错?
}
CDialog::OnCancel();
线程函数是个死循环,就是让不停地循环运行只要不出错,还有sleep();
[解决办法]
_endthread用错地方了,应该在线程函数中ThreadStart中调用,否则应该使用TerminateThread()函数来终止线程
[解决办法]
《Windows核心编程》