Sur cette page

QtTaskTree::QBarrier Class

class QtTaskTree::QBarrier

Une tâche asynchrone qui se termine à la demande. Plus d'informations...

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 : QObject
Hérité par :

QtTaskTree::QStartedBarrier

Note : 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 ultérieurs à 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 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 des données nécessaires à la configuration des tâches suivantes.

Documentation sur les fonctions membres

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

Construit un QBarrier avec un parent donné.

void QBarrier::advance()

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

qsizetype QBarrier::current() const

Renvoie le compte d'avancement actuel de la barrière.

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

Ce signal est émis lorsque la barrière est terminée, en transmettant le dernier result de l'exécution.

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 en cours d'exécution ; sinon, renvoie false.

qsizetype QBarrier::limit() const

Renvoie la limite de courant 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é démarrée ou si elle est toujours en cours d'exécution, l'option retournée est vide. Sinon, elle renvoie le résultat de la dernière exécution.

void QBarrier::setLimit(qsizetype value)

Fixe la limite à value. Une fois lancée, la barrière se termine lorsque le nombre d'appels à advance() atteint la limite.

Voir également limit().

void QBarrier::start()

Démarre la barrière.

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

Arrête la barrière en cours d'exécution de manière inconditionnelle avec un result donné. 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.