Spec-Zone.ru › Qt 5.14

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

Spec-Zone.ru

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