Qt 基于 threading 的多线程处理 moveToThread 函数
发布时间
阅读量:
阅读量
Qt提供了两种实现多线程的方式,其中一种是通过继承QThread类并重写其run函数,另一种则是将一个继承自QObject的类实例通过moveToThread函数迁移至特定线程中。在Qt4.8版本之前,开发人员普遍采用继承QThread并实现run函数的方法进行多线程编程,但自Qt4.8版本起,官方推荐使用第二种方式以提升程序的稳定性和可维护性。
具体的操作流程如下:
-
创建一个从QObject类派生的子类,并在其内部定义用于处理耗时任务的槽函数。
-
将该子类的对象实例通过moveToThread函数迁移至一个已经创建好的QThread对象中,并确保该线程被启动运行。
-
建立信号与槽之间的连接关系,使触发信号能够调用子类中的槽函数。需要注意的是,由于该对象已被移动至子线程中,因此槽函数的执行环境也将在对应的子线程内完成。
//tes.h
#ifndef TES_H
#define TES_H
#include <QCoreApplication>
#include <QDebug>
#include <QThread>
#include <QString>
#include <QObject>
class Worker:p
全部评论 (0)
还没有任何评论哟~
