64,654
社区成员
发帖
与我相关
我的任务
分享
#ifndef PRINTTASK_H
#define PRINTTASK_H
#include <QObject>
#include <QRunnable>
class PrintTask : public QObject, public QRunnable
{
Q_OBJECT
public:
PrintTask();
~PrintTask();
protected:
void run();
signals:
//注意!要使用信号,采用QObejct 和 QRunnable多继承,记得QObject要放在前面
void mySignal();
};
#endif // PRINTTASK_H
#include "printtask.h"
#include <QThread>
#include <iostream>
using std::cout;
using std::endl;
PrintTask::PrintTask()
{
}
PrintTask::~PrintTask()
{
}
//线程真正执行的内容
void PrintTask::run()
{
cout << "PrintTask run 被调用,调用线程ID为:" << QThread::currentThread() << endl;
}
#include <QCoreApplication>
#include <QThreadPool>
#include "printtask.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//设置最大线程数为3的一个线程池
QThreadPool pool;
pool.setMaxThreadCount(3);
for(int i = 0; i < 20; i++)
{
pool.start(new PrintTask());
}
return a.exec();
}