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