Qt主线程等待子线程结束代码
时间: 2023-08-31 08:10:21 浏览: 231
主线程等待子线程结束
4星 · 用户满意度95%
以下是一个简单的示例代码,演示如何在Qt的主线程中等待子线程结束:
```
#include <QCoreApplication>
#include <QThread>
class MyThread : public QThread
{
public:
void run() override
{
// 子线程工作代码
QThread::sleep(5); // 模拟耗时操作
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyThread thread;
thread.start();
// 等待子线程结束
thread.wait();
qDebug() << "子线程已结束";
return a.exec();
}
```
在上面的代码中,我们定义了一个继承自QThread的MyThread类,它覆盖了QThread的run()函数,这个函数是子线程的主函数,我们在这里放置了子线程的工作代码。
在主函数中,我们创建了一个MyThread对象并调用它的start()函数来启动子线程,在子线程启动后,我们在主线程中调用了子线程的wait()函数,这个函数会阻塞主线程,直到子线程结束。
当子线程结束后,主线程会继续执行下去,这里我们简单输出一句话表示子线程已经结束了。
最后,我们调用了a.exec()函数来让Qt的事件循环开始运行,这个函数会一直阻塞主线程,直到应用程序退出。
阅读全文