我试图在以下情况下避免竞争条件:
QDialog* dialog = [...];
QThread* thread = [...];
connect(thread, SIGNAL(finished()), dialog, SLOT(accept()));
thread->start();
dialog->exec();
当线程在 QDialog::exec() 设置对话框之前完成时,由信号触发的“accept()”调用将丢失,对话框不会自行关闭...
所以理想情况下,我只想在对话框准备好处理它之后才启动线程,但我该怎么做呢?