+ -
当前位置:首页 → 问答吧 → BCB中的一个关于局部创建在堆上的线程释放

BCB中的一个关于局部创建在堆上的线程释放

时间:2011-12-12

来源:互联网

写了一个BCB的线程
创建了一组局部对象
请问设置FreeOnterminated=true,线程结束后,是否不需要做释放处理,会自动释放
我代码是如此的
线程代码:__fastcall TWorkerThread::TWorkerThread()
  : TThread(true)
{
  FreeOnTerminate = true;
  //Resume();
  m_pWorkerSection = new TCriticalSection();
  m_pWorkerEvent = new TEvent(NULL, false, false, DEFAULT_EMPTY);
  m_pRecorderThread = new TRecorderThread();
  this->InitialPipe();
}

调用代码:
vector<TWorkerThread*> vecDelThread;
  for (int i = 0; i < iCount; ++ i)
  {
  vecDelThread.push_back(new TWorkerThread());
  }
请问这组线程需要显示写代码释放吗?怎么释放?

作者: jackiectrip   发布时间: 2011-12-12

FreeOnterminated=true;//仅仅是在结束时清除线程自身
如果线程中有new,最好在线程结束前delete掉

作者: bigfog   发布时间: 2011-12-12