刚才的线程池实例除了"threadpool.h"和"threadpool.cpp",“main.cpp”该如何编写?
时间: 2023-07-21 16:00:24 浏览: 58
感谢您的提醒。当使用Qt创建线程池时,我们需要在"main.cpp"文件中编写主程序的入口点。以下是一个示例的"main.cpp"文件:
```cpp
#include <QCoreApplication>
#include "threadpool.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建线程池
QThreadPool threadPool;
threadPool.setMaxThreadCount(4); // 设置线程池最大线程数
// 添加任务到线程池
for (int i = 0; i < 10; ++i)
{
MyTask *task = new MyTask(i);
threadPool.start(task);
}
// 当所有任务执行完毕后退出应用程序
QObject::connect(&threadPool, &QThreadPool::done, &a, &QCoreApplication::quit);
return a.exec();
}
```
在这个示例中,我们包含了"threadpool.h"头文件,并在主函数中创建了一个`QThreadPool`对象,并设置了最大线程数。然后,我们使用一个循环创建了10个任务,并将它们添加到线程池中。最后,我们使用`QThreadPool`的`done`信号连接到`QCoreApplication`的`quit`槽,以在所有任务完成后退出应用程序。
请确保在编译时将"threadpool.h"和"threadpool.cpp"一同编译,并链接到主程序中。
希望这个示例能满足您的需求!如果您有任何进一步的问题,请随时提问。