0

我已经CWinThread m_pThread使用AfxBeginThread(). 然后我需要摧毁它。经过一些操作后,我需要再次创建线程。我又打电话AfxBeginThread()了。

我收到消息this may be due to corruption of the heap...。我没有在线程中做任何测试。我仍然发现了这个错误。

我被这些破坏了线程。

    enter code here
     bool bRet = TerminateThread(m_pThread->m_hThread, -1);
  delete m_pThread;     
  m_pThread->m_hThread = NULL;      
  m_pThread = NULL;
4

1 回答 1

0

如果要控制线程的生命周期,请确保关闭 m_bAutoDelete,例如

m_pThread = AfxBeginThread( DoWork, NULL, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED );
if ( m_pThread ) {
    m_pThread->m_bAutoDelete = FALSE;
    m_pThread->ResumeThread();
}
于 2013-09-06T07:38:40.377 回答