Advertisement

Qt 基于 threading 的多线程处理 moveToThread 函数

阅读量:

Qt提供了两种实现多线程的方式,其中一种是通过继承QThread类并重写其run函数,另一种则是将一个继承自QObject的类实例通过moveToThread函数迁移至特定线程中。在Qt4.8版本之前,开发人员普遍采用继承QThread并实现run函数的方法进行多线程编程,但自Qt4.8版本起,官方推荐使用第二种方式以提升程序的稳定性和可维护性。

具体的操作流程如下:

  1. 创建一个从QObject类派生的子类,并在其内部定义用于处理耗时任务的槽函数。

  2. 将该子类的对象实例通过moveToThread函数迁移至一个已经创建好的QThread对象中,并确保该线程被启动运行。

  3. 建立信号与槽之间的连接关系,使触发信号能够调用子类中的槽函数。需要注意的是,由于该对象已被移动至子线程中,因此槽函数的执行环境也将在对应的子线程内完成。

复制代码
 //tes.h

    
 #ifndef TES_H
    
 #define TES_H
    
  
    
 #include <QCoreApplication>
    
 #include <QDebug>
    
 #include <QThread>
    
 #include <QString>
    
 #include <QObject>
    
  
    
 class Worker:p

全部评论 (0)

还没有任何评论哟~