Qt5线程编程3

还是用高级的线程编程方式,用到QRunnable和QThreadPool。

MyProcess.h

#ifndef MYPROCESS_H
#define MYPROCESS_H

#include <QRunnable>
#include <QDebug>

class MyProcess : public QRunnable
{
public:
    MyProcess();
    void run();
};

#endif // MYPROCESS_H

MyProcess.cpp

#include "myprocess.h"

MyProcess::MyProcess()
{

}

void MyProcess::run()
{
    int myNumber = 0;
    for (int i = 0; i < 100000000; ++i)
    {
        myNumber += i;
    }
    qDebug() << myNumber;
}

在mainWindow.cpp中添加

    MyProcess* process1 = new MyProcess;
    MyProcess* process2 = new MyProcess;
    MyProcess* process3 = new MyProcess;
    MyProcess* process4 = new MyProcess;

    QThreadPool::globalInstance()->start(process1);
    QThreadPool::globalInstance()->start(process2);
    QThreadPool::globalInstance()->start(process3);
    QThreadPool::globalInstance()->start(process4);

    qDebug() << QThreadPool::globalInstance()->activeThreadCount();

运行结果:

多谢,亲爱的美美。

猜你喜欢

转载自blog.csdn.net/islinyoubiao/article/details/113774584
Qt5