多线程,关于多线程[2011-06-20]

关于多线程程序开发的时候,出现的莫名奇妙的内存泄露。从程序上面我们发现,每次new我们都正常delete了,而其他API的使用也反复检查正确。但在程序退出的时候仍然会报告内存泄露,主要原因在于主线程很可能在子线程退出之前便退出了。因为主线程已经退出,系统会强迫退出子线程,这时候子线程就很可能没有来得及释放一些变量分配的空间便被结束了。于是造成了VS ide报告内存泄露,做法是在主线程中等待所有子线程的退出。最后退出主线程。如下:
while(!fileTransThreadList.IsEmpty())
{
CWinThread *pFileSendThread;
pFileSendThread = (CWinThread *)fileTransThreadList.RemoveHead();
::PostThreadMessage(pFileSendThread->m_nThreadID,WM_QUIT,0,0);
WaitForSingleObject(pFileSendThread->m_hThread,INFINITE);
}
题外:对于虚函数,要重载它们则必须要从该类继承下来。
Tags:  mfc多线程 vc多线程 多线程编程 java多线程 多线程

延伸阅读

最新评论

发表评论