Spec-Zone.ru › Qt

Класс QFutureSynchronizer

шаблон <typename T> class QFutureSynchronizer

Класс QFutureSynchronizer — это вспомогательный класс, который упрощает синхронизацию QFuture. Подробнее...

Заголовок: #include <QFutureSynchronizer>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
  • Список всех членов, включая унаследованные

Открытые функции

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

Spec-Zone.ru

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