【发布时间】:2014-12-19 11:22:38
【问题描述】:
我有一个线程定义为:
m_DoIt_Thread=AfxBeginThread(DoIt_ThreadProc, (LPVOID)this, 0, 0, CREATE_SUSPENDED);
DoIt_ThreadProcm 定义为:
UINT CMyClass ::DoIt_ThreadProc(LPVOID pData)
{
CMyClass * self = (CMyClass *)pData;
self->DoIt();
return 0;
}
显然 pData 在线程完成后被销毁。有没有办法阻止这种情况,以免指针被破坏?我们可以为 mfc 线程定义/覆盖析构函数吗?
【问题讨论】:
-
你确定第一个代码中的
this存在足够长的时间吗?没有什么会在你的第二秒内摧毁pData(除非DoIt这样做),你可能没有朝着正确的方向寻找。
标签: c++ multithreading mfc