社区
进程/线程/DLL
帖子详情
线程初级问题
greentape
2000-02-18 09:51:00
我的程序中有一个线程, 在进程运行过程中它一直运行
没有显式的终止它。 那么在进程结束前我要调用
CloseHandle()来释放它的句柄吗?
创建线程后必须要显式地终止它吗?
而象我这样让它随着进程的中止而终止会带来什么问题吗?
...全文
169
6
打赏
收藏
线程初级问题
我的程序中有一个线程, 在进程运行过程中它一直运行 没有显式的终止它。 那么在进程结束前我要调用 CloseHandle()来释放它的句柄吗? 创建线程后必须要显式地终止它吗? 而象我这样让它随着进程的中止而终止会带来什么问题吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
netmare
2000-02-18
打赏
举报
回复
主线程退出时将隐式地调用ExitProcess,这将导致该进程的所有线程终止,而不把线程的终止通知DLL,且线程中try-finally,try-except结构的finally和except莫奎都不被执行
如果主线程退出时显式地调用ExitThread,将不终止其他线程,但其他线程中必须有一个显式地调用ExitProcess,否则即使所有线程都结束了系统也不认为该进程已结束
因此,最好在主线程退出时通知其他线程,待其他线程结束后再返回
ad
2000-02-18
打赏
举报
回复
greentape:
其实用m_bAutoDelete设为TRUE实现隐式终止线程是一个骗局,进程结束时只不过是根据这个变量决定是否调用有关的API函数。如果你直接用API函数编程,那就只有显示终止了,就是说不存在隐式终止法!
greentape
2000-02-18
打赏
举报
回复
显式终止就是在代码中调用了 TerminateThread, ExitThread之类的函数来
明确的杀掉thread.
fbq
2000-02-18
打赏
举报
回复
什么叫显式的终止?
greentape
2000-02-18
打赏
举报
回复
谢谢你 ad
但是我没用MFC, 而是用api创建的线程
ad
2000-02-18
打赏
举报
回复
将线程m_bAutoDelete设为TRUE,就不需要显示终止它,否则必须显示终止,不然会使进程无法完全结束,现象是:程序已关闭,但用ctrl+alt+del会看到进程仍在内存中,可以硬杀掉。
java
线程
初级
学习
java
线程
初级
学习,给一些刚开始学习java
线程
的人学习
C#多
线程
初级
入门
C#多
线程
初级
入门,理论+实例,简单易懂。介绍了
线程
的基本控制方法。
VC
初级
多
线程
编程实例源码集.rar
个人整理的一些比较基础的VC
初级
多
线程
编程实例集,包括安全终止
线程
、创建UI
线程
、创建Worker
线程
、等待
线程
结束、挂起和恢复
线程
、获得
线程
的退出码、使用互斥量、使用临界区、使用信号量等内容,相信对VC 初学者...
java
线程
方面的
初级
学习程序
java
线程
方面的
初级
程序
线程
(
初级
).docx
线程
初学
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章