还是用高级的线程编程方式,用到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();
运行结果:
多谢,亲爱的美美。