线程运行结束后,必须closehandle吗?

yu4233 2006-03-21 11:53:35
我有一个程序,主线程接收到用户操作后,就会_beginThreadEx一个线程来执行用户的请求,线称运行一段时间后,自己会有出口条件,能自己退出。请问:我需要在线称退出后调用closeHandle吗?不调用的话会导致内存泄漏吗?
...全文
671 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
striking 2006-03-30
  • 打赏
  • 举报
回复
楼主, 怎么会这样给分??

严重抗议。

xiaoxiangfei 2006-03-23
  • 打赏
  • 举报
回复
你就用_beginthread 及到时在线程中_endthread。就不要用CloseHandle了。
DentistryDoctor 2006-03-22
  • 打赏
  • 举报
回复
Just handle leak,not memory leak.
蒋晟 2006-03-22
  • 打赏
  • 举报
回复
1 是
2 不会,但是有句柄泄漏
lzzqqq 2006-03-22
  • 打赏
  • 举报
回复
应该养成关闭Handle的习惯,当然不关闭也不会泄漏内存,但不是C++所提倡的.
如果不关闭,那就成了Java了,
mythay 2006-03-22
  • 打赏
  • 举报
回复
可以,当然不影响线程运行。
yu4233 2006-03-22
  • 打赏
  • 举报
回复
我如果创建线程后不需要再对线程进行其他的处理,比如:resumeThread,suspendThread等,我可以在线程刚刚创建完成后就closeHandle线程句柄吗????这样是不是就不会句柄泄漏了??? 这样会影响线程的正常运行吗?????
mythay 2006-03-22
  • 打赏
  • 举报
回复
是不是关闭线程句柄?如果是,那么
1.他不会引起内存泄漏,不过会占用一些系统资源
2.如果你不再使用(比如得到退出代码,等待退出之类),还是关了好,毕竟是良好的编程习惯。
xqk 2006-03-22
  • 打赏
  • 举报
回复
不会造成泄漏,但一定要关闭句柄,否则浪费系统资源
striking 2006-03-22
  • 打赏
  • 举报
回复
我也来说一下吧

线程创建后, 运行结束没有CloseHandle将带来几个负面效应

1. 虽然你不CloseHandle来显示关闭一个线程对象, 操作系统在进程结束也会帮你完成, 但是如果你的进程经常创建线程, 这样会产生资源的泄漏. 对效率有一个影响.

2. 如果线程内产生了一个文件对象, 文件对象被进程拥有, 非线程拥有, 进程结束之前没有办法清理

3. and so on...
一个傻冒 2006-03-22
  • 打赏
  • 举报
回复
CloseHandle是为线程内核计数器减1.
如果不这样做的话,会造成内核资源的泄漏
oyljerry 2006-03-22
  • 打赏
  • 举报
回复
会造成句柄泄漏,浪费资源

15,471

社区成员

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

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