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

相关推荐
Zfox_15 小时前
【Qt】文件
c++·qt·qt5·客户端开发
Zfox_4 天前
【Qt】QDialog类
c++·qt·qt5·客户端开发
1024熙5 天前
【Qt】——理解信号与槽,学会使用connect
前端·数据库·c++·qt5
Zfox_6 天前
【Qt】QMainWindow类
开发语言·c++·qt·qt5·客户端开发
小刘同学++10 天前
Qt 自定义控件
qt5
Zfox_10 天前
【QT】常用控件 【多元素类 | 容器类 | 布局类】
c++·qt·qt5·客户端开发
Zfox_12 天前
【QT】 常用控件【输入类】
c++·qt·qt5·客户端开发
码农新猿类1 个月前
Qt中信号带参传值
qt·qt5
laimaxgg1 个月前
Qt的网络编程
网络·c++·qt·qt5·qt6.3
laimaxgg1 个月前
Qt窗口控件之浮动窗口QDockWidget
开发语言·c++·qt·qt5·qt6.3