Класс QFutureSynchronizer
шаблон <typename T> класс QFutureSynchronizerКласс QFutureSynchronizer — это вспомогательный класс, который упрощает синхронизацию QFuture. Подробнее...
| Заголовок: | #include <QFutureSynchronizer> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Открытые функции
| QFutureSynchronizer(const QFuture<T> &future) | |
| QFutureSynchronizer() | |
| ~QFutureSynchronizer() | |
| void | addFuture(const QFuture<T> &future) |
| bool | cancelOnWait() const |
| void | clearFutures() |
| QList<QFuture<T> > | futures() const |
| void | setCancelOnWait(bool enabled) |
| void | setFuture(const QFuture<T> &future) |
| void | waitForFinished() |
Подробное описание
QFutureSynchronizer — это шаблонный класс, который упрощает синхронизацию одного или нескольких объектов QFuture. Futures добавляются с помощью функций addFuture() или setFuture(). Функция futures() возвращает список futures. Используйте clearFutures(), чтобы удалить все futures из QFutureSynchronizer.
Функция waitForFinished() ожидает завершения всех futures. Деструктор QFutureSynchronizer вызывает waitForFinished(), обеспечивая простой способ гарантировать, что все futures завершились до возврата из функции:
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.
Документация по функциям-членам
QFutureSynchronizer::QFutureSynchronizer(const QFuture<T> &future)
Создает QFutureSynchronizer и начинает отслеживание future, вызвав addFuture().
См. также addFuture().
QFutureSynchronizer::QFutureSynchronizer()
Создает QFutureSynchronizer.
QFutureSynchronizer::~QFutureSynchronizer()
Вызывает функцию waitForFinished(), чтобы убедиться, что все futures завершились до уничтожения этого QFutureSynchronizer.
См. также waitForFinished().
void QFutureSynchronizer::addFuture(const QFuture<T> &future)
Добавляет future в список управляемых futures.
См. также futures().
bool QFutureSynchronizer::cancelOnWait() const
Возвращает true если функция отмены ожидания включена; в противном случае возвращает false. Если отмена ожидания включена, функция waitForFinished() отменит все futures перед ожиданием их завершения.
См. также setCancelOnWait() и waitForFinished().
void QFutureSynchronizer::clearFutures()
Удаляет все управляемые futures из этого QFutureSynchronizer.
См. также addFuture() и setFuture().
QList<QFuture<T> > QFutureSynchronizer::futures() const
Возвращает список всех управляемых futures.
См. также addFuture() и setFuture().
void QFutureSynchronizer::setCancelOnWait(bool enabled)
Включает или отключает функцию отмены ожидания в зависимости от аргумента enabled. Если enabled имеет значение true, функция waitForFinished() отменит все futures перед ожиданием их завершения.
См. также cancelOnWait() и waitForFinished().
void QFutureSynchronizer::setFuture(const QFuture<T> &future)
Устанавливает future в качестве единственного будущего, управляемого этим QFutureSynchronizer. Это вспомогательная функция, которая вызывает waitForFinished(), затем clearFutures(), а затем передает future в addFuture().
См. также addFuture(), waitForFinished() и clearFutures().
void QFutureSynchronizer::waitForFinished()
Ожидает завершения всех futures. Если cancelOnWait() возвращает true, каждое будущее отменяется перед ожиданием их завершения.
См. также cancelOnWait() и setCancelOnWait().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qfuturesynchronizer.html