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

相关推荐
码农新猿类2 天前
Qt中信号带参传值
qt·qt5
laimaxgg5 天前
Qt的网络编程
网络·c++·qt·qt5·qt6.3
laimaxgg9 天前
Qt窗口控件之浮动窗口QDockWidget
开发语言·c++·qt·qt5·qt6.3
勇敢滴勇10 天前
Qt信号与槽高级特性与项目实战:原理剖析与工程化应用指南
网络·数据库·c++·qt·qt5·qt6.3
laimaxgg13 天前
Qt窗口控件之字体对话框QFontDialog
开发语言·c++·qt·qt5·qt6.3
七七知享22 天前
2024 Qiniu 跨平台 Qt 高级开发全解析
开发语言·qt·零基础·操作系统·跨平台·qt5·精通
laimaxgg25 天前
Qt常用控件之表格QTableWidget
开发语言·前端·c++·qt·qt5·qt6.3
飞翔的煤气罐boom1 个月前
Qt:day1
c++·qt5
laimaxgg1 个月前
Qt常用控件之微调框QSpinBox
开发语言·c++·qt·qt5·qt6.3
laimaxgg1 个月前
Qt常用控件之多行输入框QTextEdit
开发语言·c++·qt·qt5·qt6.3