社区
进程/线程/DLL
帖子详情
请问线程内部自己退出的办法。
moren123
2009-08-14 11:51:38
我在线程函数(里面调用了很多个函数)用了AfxEndThread,发现退出时老是有读取空指针的错误,请问除了这个函数之外,还有没有其他函数? MS建议不要使用TerminateThread的。
...全文
117
13
打赏
收藏
请问线程内部自己退出的办法。
我在线程函数(里面调用了很多个函数)用了AfxEndThread,发现退出时老是有读取空指针的错误,请问除了这个函数之外,还有没有其他函数? MS建议不要使用TerminateThread的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
moren123
2009-08-14
打赏
举报
回复
[Quote=引用 3 楼 pady_pady 的回复:]
读空指针错误那是你程序的问题,和线程有什么关系呢?如果要处理跨线程指针,是一定要判断有效性的。难道你认为强制关闭线程就可以防止指针错误了?
[/Quote]
我也不想强制啊,只是发现用了AfxEndThread的时候就会有内存错误而已。
moren123
2009-08-14
打赏
举报
回复
[Quote=引用 1 楼 skyxie 的回复:]
线程函数中 return, 线程就自然结束了.
[/Quote]
我的函数里面嵌套了很多层,不能简单的return啊。
cxmbaby
2009-08-14
打赏
举报
回复
TerminateThread只是不能释放自身资源吧?使用TerminateThread之后再手动释放其它资源,最后加上delete this就行了
pady_pady
2009-08-14
打赏
举报
回复
读空指针错误那是你程序的问题,和线程有什么关系呢?如果要处理跨线程指针,是一定要判断有效性的。难道你认为强制关闭线程就可以防止指针错误了?
zoulie
2009-08-14
打赏
举报
回复
ExitThread
skyxie
2009-08-14
打赏
举报
回复
线程函数中 return, 线程就自然结束了.
moren123
2009-08-14
打赏
举报
回复
我现在是用AfxBeginThread(线程函数);
然后在线程函数内部自动退出线程时采用afxEndThread。
河马爸爸
2009-08-14
打赏
举报
回复
最好是自己写一个while在最外层,然后检测到系统发过来的信号就退出。
比如设置一个全局变量 BOOL bIsRunning;
然后在线程内部使用 while(bIsRunning){ ....... };
当你在程序外将bIsRunning置为false的时候这个线程就自动退出了。
moren123
2009-08-14
打赏
举报
回复
还是不大明白上面几位大哥的回答:
例如我的的线程
A()
{
....
return;
}
B()
{
....
}
while(true)
{
A();
B();
C();
if(XX)
{
break;
}
}
程序是开源的,我拿过来而已,这样类似的结果。你在A中return又有什么用呢? 还不是不能结束到线程。
如果在线程循环里面return当然是可以结束。关键是我代码里面A(打个比方)里面可能还嵌套了几个函数。所以最底层的函数return;了,线程还是继续走。
就是在最底层函数出错时,我想退出线程而已。
见习学术士
2009-08-14
打赏
举报
回复
_beginthreadex
_endthreadex
skybblue
2009-08-14
打赏
举报
回复
return是最简单有效的方法,不论你线程中嵌套了多少层,可以根据线程条件结束的,既然你都可以EndTread了,又有什么不可以直接return退出呢.
das_jack
2009-08-14
打赏
举报
回复
1 程序结构有问题
2 对退出"条件"的检测
GMingZ
2009-08-14
打赏
举报
回复
奇怪,你线程执行到末尾了不就自动结束了?你要是想在中途结束,完全可以就简单的return的。只是,不论
你在哪return,都要记得释放掉 已经 分配了 的资源
Linux
线程
退出
方式总结
在编写多
线程
代码时,经常面临
线程
安全
退出
的问题。 一般情况下,选择检查标志位的方式: 在
线程
的while循环中,执行完例程后,都对标志位进行检查,如果标志位指示继续执行则再次执行例程,如果标志位设置为...
多
线程
/WinAPI
线程
退出
方式比较分析
对文主要参考MSDN对Windows下
线程
退出
的方法做了详细的解释说明,并实际验证了非优雅
退出
windows
线程
时带来的内存泄漏都问题。
多
线程
情况下,主
线程
先
退出
,子
线程
会被强制
退出
吗
即
线程
都是一样的,
退出
了一个不会影响另外一个。 但是所谓的"主
线程
"main,其入口代码是类似这样的方式调用main的:exit(main(…))。 main执行完之后, 会调用exit()。 exit() 会让整个进程over终止,那所有
线程
...
AfxBeginThread如何安全
退出
之前的想法是,如果尽量不要在
线程
中分配内存,这样当
线程
没有正常
退出
时,很容易就出现内存泄漏的情况。 所以在这里的test代码也是如此,没有在
线程
中分配内存,而是在主
线程
中分配的内存供
线程
使用。 关于
线程
...
VS执行单元测试调试c++代码(zmq通信)时,遇到
线程
莫名中断
退出
起因是单元测试想测一下zmq通信发布订阅模式能否正常启动,结果单步调试到某一行时,
线程
突然中断程序
退出
。 解决
办法
在TEST_F(A, testzmq)方法中,调用zmq
线程
执行方法的代码后再添加一段代码: CZmqPub pub; pub....
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章