我开始了一个线程
m_pVideoThread=::AfxBeginThread(VideoThread,NULL,
THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
m_pVideoThread->m_bAutoDelete=FALSE;
m_pVideoThread->ResumeThread();我用下面的代码中止线程:
DWORD co;
::GetExitCodeThread(m_pVideoThread->m_hThread,&co);
if(co == STILL_ACTIVE)
{
::TerminateThread(m_pVideoThread->m_hThread,co);
}
if(m_pVideoThread)
{
delete m_pVideoThread;
m_pVideoThread = NULL;
}可是这段代码执行后线程还在执行....
请问为什么啊?如何中止?
m_pVideoThread=::AfxBeginThread(VideoThread,NULL,
THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
m_pVideoThread->m_bAutoDelete=FALSE;
m_pVideoThread->ResumeThread();我用下面的代码中止线程:
DWORD co;
::GetExitCodeThread(m_pVideoThread->m_hThread,&co);
if(co == STILL_ACTIVE)
{
::TerminateThread(m_pVideoThread->m_hThread,co);
}
if(m_pVideoThread)
{
delete m_pVideoThread;
m_pVideoThread = NULL;
}可是这段代码执行后线程还在执行....
请问为什么啊?如何中止?
{
TerminateThread(m_pVideoThrad->m_hThread,0);
}
....
int ErrNO = GetLastError();简单点可以在这里设置一个断点,然后检查ErrNO到底是多少,然后去MSDN里面找到地这个是啥错误,或者调用CString::Format产生个消息,然后用MessageBox显示出来看……