QThread 线程控制问题!!

heqiangPC 2010-04-06 09:42:35
请教高手: 用QThread创建的线程如何在主进程中对其进行控制(如:强制寻出,暂停,恢复运行等)。
我在主进程中用quit()和exit(0)都没法使线程退出。应该怎样实现对线程的控制啊?
...全文
821 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sitiaohuzi 2012-09-05
  • 打赏
  • 举报
回复
用循环检测不是一个好的方案。信号是异步的,用信号解决比较好。
jues 2012-09-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

5楼的方法靠谱
[/Quote]

这方法只能解决循环中断,但如果我有run调用的函数里面本来就有很多内嵌循环,那就不行了
vanchristin 2010-09-02
  • 打赏
  • 举报
回复
5楼的方法靠谱
tanyaliji 2010-09-01
  • 打赏
  • 举报
回复
使用全局信号量让其自己退出.
lijippy 2010-07-26
  • 打赏
  • 举报
回复
用pthread_exit(0);
wsj239237 2010-07-22
  • 打赏
  • 举报
回复
5楼的方法比较正确
全速前行 2010-07-22
  • 打赏
  • 举报
回复
学习了~~~
heqiangPC 2010-07-14
  • 打赏
  • 举报
回复
呵呵,在线程exec后用exit就可以退出了。谢谢大家的帮助。
kongyanmin 2010-07-14
  • 打赏
  • 举报
回复
明白了
aoxuehan0424 2010-04-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lymxuanlin 的回复:]

给个stop()成员函数,让它改变某个变量(m_bAlive)。
在run()函数里,当发现改变量为为某值,退出run()函数就好了。
这样你的线程就运行结束了
[/Quote]

和我想的一样。在循环代码中检测这个变量,如果为false了,就return。
anjie4402211 2010-04-25
  • 打赏
  • 举报
回复
用quit()和exit(0)都没法使线程退出?

是线程 没执行exec()吧?
lymxuanlin 2010-04-23
  • 打赏
  • 举报
回复
给个stop()成员函数,让它改变某个变量(m_bAlive)。
在run()函数里,当发现改变量为为某值,退出run()函数就好了。
这样你的线程就运行结束了
tingsking18 2010-04-07
  • 打赏
  • 举报
回复
thread最好的退出方法是让他自然的运行结束.
这样强行中止掉不大好
chenwenluan 2010-04-06
  • 打赏
  • 举报
回复
用QSemaphore来声明
heqiangPC 2010-04-06
  • 打赏
  • 举报
回复
谢谢啊!
信号应该怎样设置呢?
bsr2009 2010-04-06
  • 打赏
  • 举报
回复
设置信号量,让它自己退出。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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