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