美文网首页
QT在等待子线程任务的过程中不阻塞主线程

QT在等待子线程任务的过程中不阻塞主线程

作者: NullUser | 来源:发表于2023-11-30 17:17 被阅读0次

使用QEventLoop的exec(),在等待子线程耗时任务时,确保主线程UI得到及时响应。子线程耗时任务运行结束后,发送信号,通知EventLoop退出,主线程正常往下运行。

QEventLoop loop;
connect(this, &Worker::jobFinied, &loop, &QEventLoop::quit);

//进入子线程执行耗时任务
QtConcurrent::run([this]() {
    //do things
    emit jobFinied();
});

loop.exec();

相关文章

  • 三、线程间协调

    父线程开启、中断、等待子线程结束 阻塞等待获取异步线程的执行结果 等待-通知模型,条件不满足休眠等待 Synchn...

  • Java 面试题

    java多线程实现主线程等待子线程执行完问题 1、使用Thread的join()方法,join()方法会阻塞主线程...

  • iOS笔记-多线程之GCD

    线程任务 同步: 在同一个线程中执行任务,任务没有完成前不返回,会阻塞当前线程; dispatch_sync ...

  • Android Handler消息机制

    简单应用场景 在子线程向主线程发送消息,一般刷新主线程的UI 主线程向子线程发送消息, 一般为启动异步阻塞任务 类...

  • 同步、异步,串行、并行的关系

    3于任务来说 :分为同步和异步主要区别在于 :是否阻塞当前线程。同步会阻塞当前线程,因为他会等待当前任务完成在执行...

  • 同步、异步,串行、并行的关系

    于任务来说 :分为同步和异步主要区别在于 :是否阻塞当前线程。同步会阻塞当前线程,因为他会等待当前任务完成在执行后...

  • 面试官:如何让主线程等待所有的子线程结束之后再执行?我懵了

    使用Thread的join方法 join()方法使得主线程等待子线程执行结束,阻塞的是主线程。 使用线程池的isT...

  • Android异步处理的几种方式(附demo)

    在Android的程序开发中,许多耗时操作都要放到子线程中,避免阻塞主线程,导致ANR。但是在使用异步线程的过程中...

  • C++11线程常识

    定义一个线程 以上代码简单的顶一个线程,主线程阻塞等待子线程退出,子线程每个一秒打印一个"hello world"...

  • apue- thread 线程学习(pthread_join,b

    0x01 等待子线程返回结果 pthread_join 会阻塞当前线程, 直到子线程返回结果 运行结果: 0x02...

网友评论

      本文标题:QT在等待子线程任务的过程中不阻塞主线程

      本文链接:https://www.haomeiwen.com/subject/urmqgdtx.html