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()函数查询取消等待特性的状态。

相关推荐
艾莉丝努力练剑1 天前
【QT】Qt 从零上手:Hello World、项目文件与实战避坑指南
linux·运维·开发语言·c++·qt·继承·qt5
艾莉丝努力练剑7 天前
【QT】环境搭建收尾:认识Qt Creator
运维·开发语言·c++·人工智能·qt·qt creator·qt5
飞仔FeiZai14 天前
基于 Python 与 PyQt5 构建的特斯拉行车记录仪视频播放器
python·音视频·qt5
微尘hjx1 个月前
【目标检测软件 02】AirsPy 目标检测系统操作指南
人工智能·测试工具·yolo·目标检测·计算机视觉·目标跟踪·qt5
dllmayday1 个月前
QWidget上叠加半透明QML组件显示方案
开发语言·qt5
蓝天智能1 个月前
QT实战:Unix 系统内存异常排查
unix·qt5
GIS阵地1 个月前
Qt实现简易仪表盘
开发语言·c++·qt·pyqt·qgis·qt5·地理信息系统
AI-嘉文哥哥2 个月前
ADAS自动驾驶-前车碰撞预警(追尾预警、碰撞检测)系统
人工智能·深度学习·yolo·目标检测·数据分析·课程设计·qt5
nianniannnn3 个月前
Qt布局管理停靠窗口QDockWidget类
开发语言·数据库·c++·qt·qt5·qt6.3
举焰4 个月前
VSCode+MSVC+Qmake环境搭建笔记
c++·ide·笔记·vscode·msvc·qt5·qmake