使用QEventLoop的exec()
,在等待子线程耗时任务时,确保主线程UI得到及时响应。子线程耗时任务运行结束后,发送信号,通知EventLoop退出,主线程正常往下运行。
QEventLoop loop;
connect(this, &Worker::jobFinied, &loop, &QEventLoop::quit);
//进入子线程执行耗时任务
QtConcurrent::run([this]() {
//do things
emit jobFinied();
});
loop.exec();
网友评论