qt5 动态创建线程
时间: 2023-09-04 15:04:18 浏览: 172
将线程代码外置,目的是可以动态创建不同功能线程
Qt5提供了QThread类来动态创建线程。创建线程的步骤如下:
1. 创建一个新的类,继承自QThread类。这个新类将会被用来处理具体的任务。
2. 在新类中重写run()函数,这个函数中包含了具体的任务逻辑。
3. 在主线程中创建一个新的对象,这个对象是刚才继承自QThread的新类的实例。
4. 调用新对象的start()函数来启动线程,执行run()函数中的任务。
具体实现如下:
```cpp
#include <QThread>
#include <QDebug>
class WorkerThread : public QThread
{
public:
void run() override
{
// 执行具体的任务逻辑
for(int i = 0; i < 5; i++)
{
qDebug() << "子线程执行中:" << i;
QThread::sleep(1); // 暂停1秒
}
}
};
int main()
{
// 创建一个新的WorkerThread对象
WorkerThread workerThread;
// 启动线程
workerThread.start();
// 主线程继续执行其他任务
for(int i = 0; i < 3; i++)
{
qDebug() << "主线程执行中:" << i;
QThread::sleep(1); // 暂停1秒
}
// 等待子线程执行完毕
workerThread.wait();
return 0;
}
```
以上代码创建了一个继承自QThread的新类WorkerThread,重写了run()函数来执行具体的任务。在主线程中,创建一个WorkerThread对象,并调用其start()函数来启动线程。然后主线程继续执行其他任务。最后,通过调用wait()函数等待子线程执行完毕。运行该程序,会看到子线程和主线程交替执行的结果。
阅读全文