Spec-Zone.ru › Qt 5.12

Класс 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()

Защищенные переменные

bool m_cancelOnWait
QList<QFuture<T> > m_futures

Подробное описание

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API