Qt扫盲-QFutureSynchronizer 理论总结

QFutureSynchronizer 理论总结

一、概述

QFutureSynchronizer类是一个简化QFuture同步的便捷类。QFutureSynchronizer是一个模板类,它简化了一个或多个QFuture对象的同步。使用 addFuture() 或 setFuture() 函数添加 Future 。

futures():返回一个Futures 列表。

使用clearFutures() 从 QFutureSynchronizer 中删除所有的Future 。

二、使用

waitForFinished()函数等待所有的future完成。QFutureSynchronizer的析构函数调用waitForFinished(),提供了一种简单的方法来确保所有的future在从函数返回之前已经完成:

cpp 复制代码
  void someFunction()
  {
      QFutureSynchronizer<void> synchronizer;

      ...

      synchronizer.addFuture(QtConcurrent::run(anotherFunction));
      synchronizer.addFuture(QtConcurrent::map(list, mapFunction));

      return; // QFutureSynchronizer waits for all futures to finish
  }

waitForFinished() 的行为可以使用setCancelOnWait()函数来改变。

调用 setCancelOnWait(true) 将导致waitForFinished() 在等待所有Future 完成之前取消它们。

我们还可以使用cancelOnWait()函数查询取消等待特性的状态。

相关推荐
foundbug9999 天前
基于qt5和stk10开发的互联调试
qt5
奇树谦19 天前
VTK|显示三维图像的二维切片
c++·vtk·qt5·三维显示
钟剑锋-JeffChong1 个月前
一文详解 Linux下的开源打印系统CUPS(Common UNIX Printing System)
linux·嵌入式·qt5·打印机·cups
Zfox_1 个月前
【Qt】网络
开发语言·网络·c++·qt·qt5·客户端开发
钟剑锋-JeffChong1 个月前
Qt快速上手:QSettings高效配置读写实战指南
跨平台·qt5·配置管理·qsettings
Zfox_1 个月前
【Qt】文件
c++·qt·qt5·客户端开发
Zfox_2 个月前
【Qt】QDialog类
c++·qt·qt5·客户端开发
1024熙2 个月前
【Qt】——理解信号与槽,学会使用connect
前端·数据库·c++·qt5
Zfox_2 个月前
【Qt】QMainWindow类
开发语言·c++·qt·qt5·客户端开发
小刘同学++2 个月前
Qt 自定义控件
qt5