Sur cette page

QFutureSynchronizer Class

template <typename T> class QFutureSynchronizer

La classe `QFutureSynchronizer` est une classe utilitaire qui simplifie la synchronisation d'QFuture. En savoir plus...

En-tête : #include <QFutureSynchronizer>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Fonctions publiques

QFutureSynchronizer()
QFutureSynchronizer(QFuture<T> future)
~QFutureSynchronizer()
void addFuture(QFuture<T> future)
bool cancelOnWait() const
void clearFutures()
QList<QFuture<T>> futures() const
void setCancelOnWait(bool enabled)
void setFuture(QFuture<T> future)
void waitForFinished()

Description détaillée

QFutureSynchronizer est une classe de modèle dont le paramètre de modèle ` T ` spécifie le type de résultat des objets ` QFuture ` en cours de synchronisation. QFutureSynchronizer simplifie la synchronisation d’un ou plusieurs objets ` QFuture `. Les « futures » sont ajoutés à l’aide des fonctions addFuture() ou setFuture(). La fonction futures() renvoie une liste de « futures ». Utilisez clearFutures() pour supprimer tous les « futures » du QFutureSynchronizer.

La fonction ` waitForFinished()` attend que tous les futurs soient terminés. Le destructeur de `QFutureSynchronizer` appelle ` waitForFinished()`, ce qui offre un moyen simple de s’assurer que tous les futurs sont terminés avant de quitter une fonction :

void someFunction()
{
    QFutureSynchronizer<void> synchronizer;

    //...

    synchronizer.addFuture(QtConcurrent::run(anotherFunction));
    synchronizer.addFuture(QtConcurrent::map(list, mapFunction));

    return; // QFutureSynchronizer waits for all futures to finish
}

Le comportement de ` waitForFinished()` peut être modifié à l’aide de la fonction ` setCancelOnWait()`. L’appel de ` setCancelOnWait(true)` entraînera l’annulation de tous les futurs par ` waitForFinished()` avant d’attendre leur achèvement. Vous pouvez interroger l’état de la fonctionnalité « annulation lors de l’attente » à l’aide de la fonction ` cancelOnWait()`.

Voir également QFuture, QFutureWatcher et Qt Concurrent.

Documentation sur les fonctions membres

QFutureSynchronizer::QFutureSynchronizer()

Construit un objet `QFutureSynchronizer`.

[explicit] QFutureSynchronizer::QFutureSynchronizer(QFuture<T> future)

Crée un objet `QFutureSynchronizer` et commence à surveiller ` future ` en appelant la méthode ` addFuture()`.

Voir également addFuture().

QFutureSynchronizer::~QFutureSynchronizer()

Appelle la fonction waitForFinished() pour s'assurer que tous les « futures » se sont terminés avant de détruire cet objet QFutureSynchronizer.

Voir également waitForFinished().

void QFutureSynchronizer::addFuture(QFuture<T> future)

Ajoute « future » à la liste des contrats à terme gérés.

Voir également futures().

bool QFutureSynchronizer::cancelOnWait() const

Renvoie ` true ` si la fonctionnalité « cancel-on-wait » est activée ; sinon, renvoie `false`. Si « cancel-on-wait » est activée, la fonction ` waitForFinished()` annulera tous les futures avant d'attendre leur achèvement.

Voir également setCancelOnWait() et waitForFinished().

void QFutureSynchronizer::clearFutures()

Supprime tous les contrats à terme gérés de cette page QFutureSynchronizer.

Voir également addFuture() et setFuture().

QList<QFuture<T>> QFutureSynchronizer::futures() const

Renvoie une liste de tous les contrats à terme gérés.

Voir également addFuture() et setFuture().

void QFutureSynchronizer::setCancelOnWait(bool enabled)

Active ou désactive la fonctionnalité « cancellation on wait » (annulation en cas d’attente) en fonction de l’argument « enabled ». Si « enabled » est défini sur « true », la fonction « waitForFinished() » annulera tous les « futures » avant d’attendre leur achèvement.

Voir également cancelOnWait() et waitForFinished().

void QFutureSynchronizer::setFuture(QFuture<T> future)

Définit ` future ` comme le seul futur géré par ` QFutureSynchronizer`. Il s'agit d'une fonction pratique qui appelle ` waitForFinished()`, puis ` clearFutures()`, et transmet enfin ` future ` à ` addFuture()`.

Voir également addFuture(), waitForFinished() et clearFutures().

void QFutureSynchronizer::waitForFinished()

Attend que tous les « futures » soient terminés. Si la fonction cancelOnWait() renvoie true, chaque « future » est annulé avant que l'on n'attende leur achèvement.

Voir également cancelOnWait() et setCancelOnWait().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.