查看完整版本: [-- Qobject moveto thread方法如何做QThread run的功能? --]

QTCN开发网 -> Qt基础编程 -> Qobject moveto thread方法如何做QThread run的功能? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

vinge 2015-04-27 11:20

Qobject moveto thread方法如何做QThread run的功能?

最近接触Qt多线程编程,找了些资料,比如这个
http://blog.csdn.net/robinvanpersie/article/details/8213672

推荐用Qobject实现功能然后movetothread放入线程去执行。

但我的功能希望是一个while(1)循环,不到程序结束不会杀掉。
Qthread里只要在run()里做while循环就好,在Qobject里如何实现while循环?
我能相当的办法有两个,1用TIMER代替Qobject,2 设置一个信号,thread接到后就执行Qobject里带WIHLE的函数
------------------------------------------------------------------------------------------------------
补充一下,我的目的是在LINUX下,把CPU多分给这个线程进行大量计算,少一点进行界面更新等次要工作。
现在这个做法是否合适?

dbzhang800 2015-04-27 12:40
你帖子中给出的链接是转载的我以前在百度空间中的blog,文中内容不够准确。

感兴趣的话,可以看看:

http://blog.debao.me/2013/08/how-to-use-qthread-in-the-right-way-part-1/

简单地说,你的需求,派生QThread并实现其run() 就很好。如果用QObject而后moveToThread的话,反倒可能不那么好了,尽管可以实现:在QObject的一个槽函数中做个while()循环,move到次线程,通过queue信号槽的方式调用那个槽函数。

vinge 2017-05-31 23:42
虽然过了很久,还是说声谢谢!当时因为想到别的办法就没用THREAD了。没想前几天又用上了,就是用派生THREAD的方法干的。


查看完整版本: [-- Qobject moveto thread方法如何做QThread run的功能? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled