关于多线程程序开发的时候,出现的莫名奇妙的内存泄露。从程序上面我们发现,每次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);
}
题外:对于虚函数,要重载它们则必须要从该类继承下来。
延伸阅读
- 2012-3-21-- 什么是多线程,什么是多线程(转) 分享
- 2011-9-1-- 多线程处理,..net 下的多线程处理,将复杂的多线程处...
- 2010-12-8-- java多线程,Java多线程方案如何处理关键代码
- 2011-9-1-- java并发编程,Java 多线程与并发编程总结
- 2010-12-29-- java多线程,java多线程性能浅析
- 2010-12-8-- java多线程,Java多线程操作相关问题总结
- 2010-12-23-- java多线程,Java 多线程总结
- 2010-12-23-- java多线程,JAVA 的多线程浅析[一][转]
- 2010-3-17-- java多线程:java多线程例子
- 2011-9-5-- java多线程,JAVA多线程02
最新评论