QT高级线程API总结(六)QFutureSynchronizer

目录

1、Header: #include

2、qmake: QT += core

3、详情描述

4、Number functions

4.1 void QFutureSynchronizer::addFuture(const QFuture &future)

4.2 bool QFutureSynchronizer::cancelOnWait() const

4.3 void QFutureSynchronizer::clearFutures()

4.4 QList > QFutureSynchronizer::futures() const

4.5 void QFutureSynchronizer::setCancelOnWait(bool enabled)

4.6 void QFutureSynchronizer::setFuture(const QFuture &future)

4.7 void QFutureSynchronizer::waitForFinished()


1、Header: #include <QFutureSynchronizer>

2、qmake: QT += core

3、详情描述

QFutureSynchronizer类是一个方便的类,它简化了QFuture同步。

QFutureSynchronizer是一个模板类,它简化了一个或多个QFuture对象的同步。future是使用addFuture()或setFuture()函数添加的。函数的作用是:返回一个futures列表。使用clearFutures()从QFutureSynchronizer中删除所有future。

函数waitForFinished()等待所有的future完成。QFutureSynchronizer的析构函数调用waitForFinished(),提供了一种简单的方法来确保所有的future在从函数返回之前都已经完成:

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()在等待它们完成之前取消所有的futures。可以使用cancelOnWait()函数查询“等待中取消”特性的状态。

请参见QFuture、QFutureWatcher和Qt Concurrent。

4、Number functions

4.1 void QFutureSynchronizer::addFuture(const QFuture<T> &future)

将future添加到管理的future列表中

4.2 bool QFutureSynchronizer::cancelOnWait() const

如果取消等待特性被启用,返回true;否则返回false。如果启用了取消等待功能,waitForFinished()函数将在等待它们完成之前取消所有的future。

4.3 void QFutureSynchronizer::clearFutures()

从这个QFutureSynchronizer中删除所有托管的future。

4.4 QList<QFuture<T> > QFutureSynchronizer::futures() const

返回所有托管future的列表。

4.5 void QFutureSynchronizer::setCancelOnWait(bool enabled)

基于enabled参数启用或禁用取消等待特性。如果enabled为true, waitForFinished()函数将在等待它们完成之前取消所有的futures。

4.6 void QFutureSynchronizer::setFuture(const QFuture<T> &future)

将future设置为由这个QFutureSynchronizer管理的唯一future。这是一个方便的函数,它调用waitForFinished(),然后调用clearFutures(),最后将future传递给addFuture()。

4.7 void QFutureSynchronizer::waitForFinished()

等待所有的未来结束。如果cancelOnWait()返回true,则每个future在等待它们完成之前被取消。

 

 

 

 

 

第1章 混合桌面/internet应用程序 1.1 internet相关窗口部件 1.2 webkit的使用 第2章 声音和视频 2.1 qsound和qmovie的使用 2.2 phonon多媒体框架 第3章 模型/视图表格模型 3.1 qt的模型/视图架构 3.2 用于表格的qstandarditemmodel 3.3 创建自定义表格模型 第4章 模型/视图树模型 4.1 用于树qstandarditemmodel的用法 4.2 创建自定义树模型 第5章 模型/视图委托 5.1 与数据类型相关的编辑器 5.2 与数据类型相关的委托 5.3 与模型相关的委托 第6章 模型/视图中的视图 6.1 qabstractitemview子类 .6.2 与模型相关的可视化视图 第7章 用qtconcurrent实现线程处理 7.1 在线程中执行函数 7.2 线程中的过滤和映射 第8章 用qthread实现线程处理 8.1 独立项的处理 8.2 共享项的处理 第9章 创建富文本编辑器 9.1 qtextdocument简介 9.2 创建自定义的文本编辑器 9.3 一个单行的富文本编辑器 9.4 编辑多行的富文本 第10章 创建富文本文档 10.1 高质量地输出qtextdocument文件 10.2 创建qtextdocument 10.3 输出和打印文档 10.4 绘制页面 第11章 创建图形/视图窗口 11.1 图形/视图架构 11.2 图形/视图窗口部件和布局 11.3 图形项简介 第12章 创建图形/视图场景 12.1 场景、项和动作 12.2 增强qgraphicsview的功能 12.3 创建可停靠的工具箱窗口部件 12.4 创建自定义图形项 第13章 动画和状态机框架 13.1 动画框架简介 13.2 状态机框架简介 13.3 动画和状态机的结合 结束语 精选书目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值