以前写多线程的程序都是先创建一个对象,继承QThread。重载run(),或者说把自己的一些逻辑或对象写进run()。
有一个大牛,Bradley T. Hughes,说得很有道理:QThread 应该被看做是操作系统线程的接口或控制点,而不应该包含需要在新线程中运行的代码。需要运行的代码应该放到一个QObject的子类中,然后将该子类的对象moveToThread到新线程中。
最简单的方法实现多线程,就是创建一个从QObject继承的对象 如obj1。直接实例化一个QThread 如thread1。用
当然,你也可以想象同时把obj1,obj2,obj3......objN都扔到thread1这一个线程里,只要还跑得动~
参考文献:http://hi.baidu.com/cyclone/blog/item/5fac3bc7ab1b90d1d10060f2 .html
QThread 的使用方法
2010-07-03 17:47
有一个大牛,Bradley T. Hughes,说得很有道理:QThread 应该被看做是操作系统线程的接口或控制点,而不应该包含需要在新线程中运行的代码。需要运行的代码应该放到一个QObject的子类中,然后将该子类的对象moveToThread到新线程中。
最简单的方法实现多线程,就是创建一个从QObject继承的对象 如obj1。直接实例化一个QThread 如thread1。用
obj1.moveToThread(thread1);直接将obj1扔到thread1里。这样obj1的行为或一些计算过程将直接使用thread1的资源。当然,你也可以想象同时把obj1,obj2,obj3......objN都扔到thread1这一个线程里,只要还跑得动~

参考文献:http://hi.baidu.com/cyclone/blog/item/5fac3bc7ab1b90d1d10060f2
QThread 的使用方法
2010-07-03 17:47
| 20101023更新:
QThread 使用探讨 起源 昨天不小心看到Qt开发人员( Bradley T. Hughes)Blog中的一片文章 you are-doing-it-wrong |
