第一次用AfxBeginThread创建线程,每次运行完以后都发现有112Bytes的内存泄露,查了很多资料说是没有调用AfxEndThread,但是实际上我是写了的,可能是没写对导致内存还是泄露。
参考了很多方法:
http://www.cppblog.com/flyingxu/archive/2006/07/26/10557.html
http://bbs.csdn.net/topics/330192737
http://www.cnblogs.com/cy163/archive/2006/11/02/548492.html
最后是在析构函数中将线程的指针delete掉以后就没有泄露了。肯定方法还是有问题的,先记录一下。
代码基本结构如下:
commWatchThread = AfxBeginThread(CommWatchProc,this,THREAD_PRIORITY_HIGHEST);
UINT CommWatchProc(LPVOID pParam)
{
.....
return 0
}
CxxDlg::~CxxDlg()
{
if (commWatchThread != NULL)
{
delete commWatchThread;
commWatchThread = NULL;
}
}