• 4841阅读
  • 2回复

[讨论]Qobject moveto thread方法如何做QThread run的功能? [复制链接]

上一主题 下一主题
离线vinge
 

只看楼主 倒序阅读 楼主  发表于: 2015-04-27
最近接触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

只看该作者 1楼 发表于: 2015-04-27
你帖子中给出的链接是转载的我以前在百度空间中的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

只看该作者 2楼 发表于: 2017-05-31
虽然过了很久,还是说声谢谢!当时因为想到别的办法就没用THREAD了。没想前几天又用上了,就是用派生THREAD的方法干的。
一切真如都是假如
快速回复
限100 字节
 
上一个 下一个