使主线程等待所有其他Qthread完成

问题描述 投票:7回答:2

有一种方法可以强制主线程等待,直到由主线程创建的所有线程完成其工作,然后再完成程序。我的意思是:

int main(){
    QthreadClass a; // in cons' a thread is created and running
    QthreadClass b; // same as before

    *** wish to wait till both created thread finished their jobs ***

    return 0;

}

c++ qthread
2个回答
10
投票

嗯,怎么样:

a.wait();
b.wait();

或者,您宁愿启动一个事件循环(通常对于Qt应用程序而言),当两个线程都结束时(QThread发出finish()和Terminate()信号)而退出。


3
投票

通常,使用Qt,您将有一个基于QApplication的类,该类带有带有信号和插槽的事件循环,直到您需要时,它才会从主函数中退出。在那种情况下,您可以简单地将QThread :: finish()信号连接到用于检查是否所有线程都已完成的插槽。

© www.soinside.com 2019 - 2024. All rights reserved.