Класс 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 в качестве единственного future, управляемого этим QFutureSynchronizer. Это вспомогательная функция, которая вызывает 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.14/qfuturesynchronizer.html