目录
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在等待它们完成之前被取消。