Sur cette page

QtTaskTree::QBarrier Class

class QtTaskTree::QBarrier

Une tâche asynchrone qui s'achève à la demande. En savoir plus...

En-tête : #include <qbarriertask.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake : QT += tasktree
Depuis : Qt 6.11
Hérite de : QObject
Hérité par :

QtTaskTree::QStartedBarrier

Statut : Aperçu technologique

Cette classe est en préversion technologique et est susceptible d'être modifiée.

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

QBarrier(QObject *parent)
void advance()
qsizetype current() const
bool isRunning() const
qsizetype limit() const
std::optional<QtTaskTree::DoneResult> result() const
void setLimit(qsizetype value)
void start()
void stopWithResult(QtTaskTree::DoneResult result)

Signaux

void done(QtTaskTree::DoneResult result)

Fonctions protégées réimplémentées

virtual bool event(QEvent *event) override

Description détaillée

QBarrier attend que les appels successifs à advance() atteignent la limite de la barrière (1 par défaut). Elle se termine par DoneResult::Success.

Elle est souvent utilisée dans les recettes de type « QTaskTree » pour suspendre l’exécution des tâches séquentielles suivantes jusqu’à ce qu’une autre tâche en cours d’exécution fournisse les données nécessaires à la configuration des tâches suivantes.

Documentation des fonctions membres

[explicit] QBarrier::QBarrier(QObject *parent)

Crée un objet QBarrier avec l'parent, .

void QBarrier::advance()

Fait avancer la barrière. Si le nombre d'appels à la fonction advance() atteint la limite de la barrière, celle-ci se termine par l'DoneResult::Success.

qsizetype QBarrier::current() const

Renvoie le nombre actuel de dépassements de la barrière.

[private signal] void QBarrier::done(QtTaskTree::DoneResult result)

Ce signal est émis lorsque la barrière a terminé son exécution et a franchi l'result e finale.

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux, mais ne peut pas être émis par l'utilisateur.

[override virtual protected] bool QBarrier::event(QEvent *event)

Réimplémente : QObject::event(QEvent *e).

bool QBarrier::isRunning() const

Renvoie « true » si la barrière est actuellement en cours d'exécution ; sinon, renvoie « false ».

qsizetype QBarrier::limit() const

Renvoie la limite actuelle de la barrière.

Voir également setLimit().

std::optional<QtTaskTree::DoneResult> QBarrier::result() const

Renvoie le résultat de l'exécution de la barrière. Si la barrière n'a pas été lancée ou si elle est toujours en cours d'exécution, l'optional renvoyé est vide. Dans le cas contraire, il renvoie le résultat de la dernière exécution.

void QBarrier::setLimit(qsizetype value)

Définit la limite à value. Une fois lancée, la barrière prend fin lorsque le nombre d'appels à la fonction advance() atteint la limite.

Voir également limit().

void QBarrier::start()

Lance la barrière.

void QBarrier::stopWithResult(QtTaskTree::DoneResult result)

Arrête sans condition la barrière en cours d'exécution à l'result. La limite de la barrière est ignorée.

© 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.