社区
进程/线程/DLL
帖子详情
如何终止线程
zhaochen666
2012-11-21 04:24:52
在mfc应用程序中,使用AfxBeginThread创建一个线程,该线程中使用gsoap实现webservice服务。
假设在webservice过程中需要耗时10秒。现在我关闭应用程序,但webservice尚未完成如何,如何强制使子线程退出,且没有内存泄露。目前使用TerminateThread函数,但存在内存泄露。因为该函数并未释放c++资源。目前我有一个想法是在子线程中使用try,catch。但如何使该线程抛出异常。
...全文
176
8
打赏
收藏
如何终止线程
在mfc应用程序中,使用AfxBeginThread创建一个线程,该线程中使用gsoap实现webservice服务。 假设在webservice过程中需要耗时10秒。现在我关闭应用程序,但webservice尚未完成如何,如何强制使子线程退出,且没有内存泄露。目前使用TerminateThread函数,但存在内存泄露。因为该函数并未释放c++资源。目前我有一个想法是在子线程中使用try,catch。但如何使该线程抛出异常。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
breaksoftware
2012-11-21
打赏
举报
回复
我验证了下,是可行的。你看http://blog.csdn.net/breaksoftware/article/details/8209502
breaksoftware
2012-11-21
打赏
举报
回复
顺着LZ的思路,我想你可以先挂起线程,然后获得线程执行环境,然后修改程序指针使其指向一个无效地址,然后恢复运行。是不是就好了呢?只是个初步想法,没经过验证。
傻X
2012-11-21
打赏
举报
回复
你应用程序关闭,相当于进程释放?操作系统帮助你回收进程所占资源(包括线程所申请的内存)。何来内存泄露之理呢?
dllg1988
2012-11-21
打赏
举报
回复
也碰到过同样的问题,貌似只能暴力终止线程。1L和4L都不看清楼主问的什么就回答。。 个人觉得如果就是在主线程退出的时候来考虑这个问题,应该可以不用管子线程是否还在跑,直接让主线程正常退出就是了,主线程正常退出进程结束,OS会回收这个进程所占有的所有资源,理论上是没问题的,Terminate也应该也没关系
ls443085074
2012-11-21
打赏
举报
回复
加退出的控制变量 例如 if(!m_bWorking) return;
xumaojun
2012-11-21
打赏
举报
回复
最好不要强制结束线程,还是通过变量或者信号等让线程自动退出
zhaochen666
2012-11-21
打赏
举报
回复
to2楼,假设子线程进入gsoap的网络服务中,timeout时间设置8秒。刚好在这时间内,我直接关闭了应用程序,总不能等子线程等待事件退出吧,这不合理。用户会认为我都关闭应用了,还要等5,6秒才退出,明显有问题。。
九州剑王
2012-11-21
打赏
举报
回复
线程判断个变量或者事件,等到设置了的时候,自己return
Java语言从入门到精通课程(第7季)-- 并发基础
提供详细的笔记作为辅助工具,200多条笔记帮助学员快速掌握Java200多个知识点 课程内容: 第19章 并发:
线程
类、
线程
休眠、后台
线程
、
线程
异常 第20章 共享资源:synchronized关键字、Lock关键字、原子类 第21章 终结...
如何
终止
线程
?
使用 stop() 方法强行
终止
线程
,这种方法是过期作废的方法,使用它可能会发生不可预料的结果,不推荐使用。 下面我将对这三种方法分别进行举例说明。 一、使用退出标志 在 run() 方法执行完毕后,
线程
就
终止
了,...
终止
线程
的三种方法
有三种方法可以使
终止
线程
。 1. 使用退出标志,使
线程
正常退出,也就是当run方法完成后
线程
终止
。 2. 使用stop方法强行
终止
线程
(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果...
Python中如何
终止
线程
在Python中,要
终止
线程
,一种常见的方法是使用
线程
间的通信来告知
线程
停止执行。当标志变量为False时,
线程
会停止执行。在Python中,
线程
是轻量级的执行单元,可以同时执行多个任务。
线程
在每次循环迭代中都会检查...
java中如何强制停止_Java中
终止
线程
的三种方法
终止
线程
一般建议采用的方法是让
线程
自行结束,进入Dead(死亡)状态,就是执行完run()方法。即如果想要停止一个
线程
的执行,就要提供某种方式让
线程
能够自动结束run()方法的执行。比如设置一个标志来控制循环是否执行...
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章