QFutureSynchronizer 类
template <typename T> class QFutureSynchronizerThe QFutureSynchronizer class is a convenience class that simplifies QFuture synchronization. More...
头文件 | #include <QFutureSynchronizer> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 所有成员列表,包括继承成员
- QFutureSynchronizer 是 线程类 的一部分。
公共函数
QFutureSynchronizer() | |
QFutureSynchronizer(QFuture<T> future) | |
~QFutureSynchronizer() | |
void | addFuture(QFuture<T> future) |
bool | cancelOnWait() const |
void | clearFutures() |
QList<QFuture<T>> | futures() const |
void | setCancelOnWait(bool enabled) |
void | setFuture(QFuture<T> future) |
void | waitForFinished() |
详细描述
QFutureSynchronizer 是一个模板类,用于简化一个或多个 QFuture 对象的同步。通过 addFuture() 或 setFuture() 函数添加未来。futures() 函数返回一个未来列表。使用 clearFutures() 从 QFutureSynchronizer 中移除所有未来。
waitForFinished() 函数等待所有未来完成。QFutureSynchronizer 析构函数调用 waitForFinished(),提供了在函数返回前确保所有未来都已完成的简单方法
void someFunction() { QFutureSynchronizer<void> synchronizer; ... synchronizer.addFuture(QtConcurrent::run(anotherFunction)); synchronizer.addFuture(QtConcurrent::map(list, mapFunction)); return; // QFutureSynchronizer waits for all futures to finish }
可以通过 setCancelOnWait() 函数更改 waitForFinished() 的行为。调用 setCancelOnWait(true) 将导致 waitForFinished() 在等待之前取消所有未来。您可以通过 cancelOnWait() 函数查询取消等待功能的状态。
另请参阅 QFuture,QFutureWatcher,和 Qt Concurrent。
成员函数文档
QFutureSynchronizer::QFutureSynchronizer()
构建 QFutureSynchronizer。
[explicit]
QFutureSynchronizer::QFutureSynchronizer(QFuture<T> future)
构建一个QFutureSynchronizer实例,并开始通过调用addFuture()()监视future.
另请参阅addFuture().
QFutureSynchronizer::~QFutureSynchronizer()
在销毁此QFutureSynchronizer之前,调用waitForFinished()函数以确保所有future都已完成。
另请参阅waitForFinished().
void QFutureSynchronizer::addFuture(QFuture<T> future)
将future添加到管理future列表中。
另请参阅futures().
bool QFutureSynchronizer::cancelOnWait() const
如果启用cancel-on-wait特性,返回true
;否则返回false。如果启用cancel-on-wait,则waitForFinished()函数将在等待它们完成之前取消所有future。
另请参阅setCancelOnWait()和waitForFinished().
void QFutureSynchronizer::clearFutures()
从该QFutureSynchronizer中删除所有管理的future。
QList<QFuture<T>> QFutureSynchronizer::futures() const
返回所有管理future的列表。
void QFutureSynchronizer::setCancelOnWait(bool enabled)
根据enabled参数启用或禁用cancel-on-wait特性。如果enabled为true,则waitForFinished()函数将在等待它们完成之前取消所有future。
另请参阅cancelOnWait()和waitForFinished().
void QFutureSynchronizer::setFuture(QFuture<T> future)
将future设置为该QFutureSynchronizer管理的唯一future。这是一个便利函数,它首先调用waitForFinished(),然后clearFutures(),最后将future传递给addFuture().
另请参阅addFuture()、waitForFinished()和clearFutures().
void QFutureSynchronizer::waitForFinished()
等待所有future完成。如果cancelOnWait()返回true
,则在等待它们完成之前将取消每个future。
另请参阅cancelOnWait()和setCancelOnWait().
© 2024 Qt公司有限公司。本文件中包含的文档贡献归各自所有者所有版权。提供的文档根据GNU自由文档许可证1.3版条款进行许可,该许可证由自由软件基金会发布。Qt及其相关标志是芬兰以及/或全球其他国家的Qt公司商标。所有其他商标均为其各自所有者的财产。