标题:Qobject moveto thread方法如何做QThread run的功能?
作者:vinge
日期:2015-04-27 11:20
内容:
最近接触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多分给这个线程进行大量计算,少一点进行界面更新等次要工作。
现在这个做法是否合适?
#1 [dbzhang800 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信号槽的方式调用那个槽函数。
#2 [vinge 05-31 23:42]
虽然过了很久,还是说声谢谢!当时因为想到别的办法就没用THREAD了。没想前几天又用上了,就是用派生THREAD的方法干的。