Spec-Zone.ru › Qt 5.15

Класс QFutureSynchronizer

шаблон <typename T> класс 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. Фьючеры добавляются с помощью функций 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(const QFuture<T> &future)

Создает QFutureSynchronizer и начинает наблюдение за future, вызывая addFuture().

См. также addFuture().

QFutureSynchronizer::QFutureSynchronizer()

Создает QFutureSynchronizer.

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.15/qfuturesynchronizer.html

Spec-Zone.ru

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