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

相关推荐
StruggleRookie5 天前
ubuntu20.4安装Qt5.15.2
ubuntu·qt5
HelloTonyGo6 天前
QT5实现https的post请求(QNetworkAccessManager、QNetworkRequest和QNetworkReply)
https·wireshark·ssl·post·qt5
297478604813 天前
Qt基础类03-直线类QLine
qt·qt5·qline·qlinef·直线类
297478604818 天前
QT基础之【模块】
模块·module·入门·基础·qt5
yayapoi~22 天前
qml formLayout实现方式
qt5·qml
Whale_XH1 个月前
基于QT实现的简易WPS(已开源)
wps·qt5·qt项目
炫酷的伊莉娜2 个月前
【QT】常用控件(概述、QWidget核心属性、按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)
qt·qt creator·控件·qt5·qwidget
南猿北者2 个月前
Qt窗口介绍
笔记·qt·学习·qt5
炫酷的伊莉娜2 个月前
【QT】QT 概述(背景介绍、搭建开发环境、Qt Creator、程序、项目文件解析、编程注意事项)
c++·qt·ui·qt creator·qt5·对象树
王十二er2 个月前
QT跨平台开发(windows、mac)中.pro文件设置
开发语言·qt5