Qt中开启多线程有两种方式,一种是重构run函数,另一种是moveToThread的方式,这里我主要介绍一下moveToThread,这是Qt4.8后新增的功能,也是Qt开发者极力推荐使用的多线程方式。
首先需要为子线程单独创建一个类,继承QObject。
如上图,让耗时函数在worker类中执行。
之后在主线程引用此类的头文件和QThread,并实例化耗时类对象和线程对象。
#include <QThread>
#include "worker.h"
QThread my_thread;
Worker *my_worker= new Worker;//实例化耗时类