Qt中运行后台线程不阻塞UI线程的方案

然后创建一个QThread线程,把整个MyTaskClass类的实例move到线程中就可以了:

#include <QtWidgets/QApplication>
#include <QThread>
#include "MyTaskClass.hpp"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QThread* backgroundThread = new QThread;
    backgroundThread->start();

     MyTaskClass *task = new MyTaskClass();
     task->moveToThread(backgroundThread);

    MainWindow w;
    w.show();
    return a.exec();
}

上一篇:C/C++ QT使用Thread线程库


下一篇:QThread的信号槽的跨线程使用 自动连接(Auto Connection) 直接连接(Direct Connection) 队列连接(Queued Connection)(转载)