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学习笔记第71到80讲
c++·上位机·qt5
沥川同学2 个月前
跨平台应用开发框架(1)----Qt(组件篇)
c++·qt·udp·线程·tcp·qt5·qt6.3
Xam_d_LM2 个月前
【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)
开发语言·c++·qt·ui·贴图·qt5
苟且.3 个月前
QStackedWidget使用实例
qt5
吃面不喝汤663 个月前
如何为 QSlider 编写 QSS 样式:详细教程
qt5
StruggleRookie4 个月前
ubuntu20.4安装Qt5.15.2
ubuntu·qt5
HelloTonyGo4 个月前
QT5实现https的post请求(QNetworkAccessManager、QNetworkRequest和QNetworkReply)
https·wireshark·ssl·post·qt5
29747860485 个月前
Qt基础类03-直线类QLine
qt·qt5·qline·qlinef·直线类
29747860485 个月前
QT基础之【模块】
模块·module·入门·基础·qt5
yayapoi~5 个月前
qml formLayout实现方式
qt5·qml