有一种方法可以强制主线程等待,直到由主线程创建的所有线程完成其工作,然后再完成程序。我的意思是:
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;
}
嗯,怎么样:
a.wait();
b.wait();
或者,您宁愿启动一个事件循环(通常对于Qt应用程序而言),当两个线程都结束时(QThread发出finish()和Terminate()信号)而退出。
通常,使用Qt,您将有一个基于QApplication的类,该类带有带有信号和插槽的事件循环,直到您需要时,它才会从主函数中退出。在那种情况下,您可以简单地将QThread :: finish()信号连接到用于检查是否所有线程都已完成的插槽。