Класс 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.0/qfuturesynchronizer.html