有关线程使用内存的问题。在线等,问题解决马上给分。

szclm 2003-09-27 02:43:09
我有一个庞大的线程,是我的系统中的一个主要功能。

现在,我发现这个线程可能存在内存泄露的问题。

出现的问题是:反复的开启这个线程。就后就会程序出错退出。在调试的时候,会将MFC一起退出。(MFC进程还在运行,主界面不在啦)

我想问,这会是什么问题引起的呢?

再问一下:如果彻底的释放一个线程,自己使用的内存空间呢?
...全文
24 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfc168 2003-10-09
  • 打赏
  • 举报
回复
对于多线程的跟踪调试特别麻烦,你可以分步来做:
1、把你的线程的东西提取出来,单独运行,循环执行,如果发现内存在持续增长,则一定有内存分配未释放的地方;
2、开辟新线程和线程结束的地方,看是否有未释放的句柄或资源;
。。。
rainman2001 2003-10-09
  • 打赏
  • 举报
回复
DWORD dwExitCode = -1;
do
{
GetExitCodeThread(hThread,&dwExitCode);
if(dwExitCode == STILL_ACTIVE)
{
//线程存在
...
}
}while(dwExitCode == 你定义的退出码)
wangbab 2003-09-28
  • 打赏
  • 举报
回复
用任务管理器看看反复打开和结束,你占用的内存是否上升,就可以知道是否有内存泄露了。

检查每一个new是否对应delete。
vcforever 2003-09-28
  • 打赏
  • 举报
回复
看看你的数组什么的是不是越界了,或者有什么用new的地方没有delete!
呵呵……提点建议!
windbells 2003-09-27
  • 打赏
  • 举报
回复
内存泄露的原因太多了,你把代码贴一下,要不然别人怎么知道。
szclm 2003-09-27
  • 打赏
  • 举报
回复
救命呀,来个人帮帮忙呀!好烦~~
szclm 2003-09-27
  • 打赏
  • 举报
回复
大家伙帮帮忙呀~~~
szclm 2003-09-27
  • 打赏
  • 举报
回复
当然我已经确保了,同一时间这个线程只被调用一次。
我的反复打开,是说线程结果后再重新让它运行!
FAICHEN 2003-09-27
  • 打赏
  • 举报
回复
线程同步问题
反复打开,是否使用了waitforsingleobject(..)??

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧