Класс QFutureSynchronizer
Класс QFutureSynchronizer — это вспомогательный класс, который упрощает синхронизацию QFuture. Подробнее...
| Заголовок: | #include <QFutureSynchronizer> |
| qmake: | QT += core |
| С тех пор: | Qt 4.4 |
Этот класс был представлен в Qt 4.4.
Открытые функции
| 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 future. Это вспомогательная функция, которая вызывает waitForFinished(), затем clearFutures(), и, наконец, передает future в addFuture().
См. также addFuture(), waitForFinished() и clearFutures().
void QFutureSynchronizer::waitForFinished()
Ожидает завершения всех futures. Если cancelOnWait() возвращает true, каждое future отменяется перед ожиданием их завершения.
См. также cancelOnWait() и setCancelOnWait().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qfuturesynchronizer.html