Qt TaskTree
Qt TaskTree offre un moyen déclaratif de composer et d’exécuter des flux de tâches asynchrones avec une gestion des erreurs et des politiques d’exécution adaptées.
Remarque : Qt TaskTree, dans la version 6.12, est en préversion technologique (Technology Preview) ; son API n’est donc pas couverte par les promesses de compatibilité de Qt.
Pour commencer
Qt TaskTree vous permet de créer des hiérarchies de tâches complexes avec différentes politiques d'exécution, une exécution parallèle ou séquentielle, ainsi qu'une gestion des erreurs appropriée.
Concepts clés :
- Recettes: descriptions déclaratives des flux de tâches.
- Groupes: conteneurs définissant les politiques d’exécution des tâches enfants.
- Stockage: système de stockage local au niveau du thread permettant le partage de données entre les tâches.
- Itérateurs - Prise en charge des boucles et de l'exécution répétitive des tâches.
Utilisation du module
L'utilisation de l'API C++ d'un module Qt nécessite une liaison avec la bibliothèque du module, soit directement, soit via d'autres dépendances. Plusieurs outils de compilation prennent cela en charge, notamment CMake et qmake.
Compilation avec CMake
Utilisez la commande « find_package() » pour localiser le composant de module requis dans le paquet « Qt6 » :
find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)Pour plus de détails, consultez la présentation « Compilation avec CMake ».
Compilation avec qmake
Pour configurer le module en vue d’une compilation avec qmake, ajoutez le module en tant que valeur de la variable QT dans le fichier .pro du projet :
QT += tasktreeAdaptateurs de tâches
Le module inclut plusieurs adaptateurs de tâches intégrés pour les opérations courantes :
- QProcessTask - Exécute des processus externes.
- QThreadFunctionTask - Exécute des fonctions dans des threads distincts.
- QNetworkReplyWrapperTask - Gère les opérations réseau.
- QTcpSocketWrapperTask - Gère les opérations sur les sockets TCP.
- QBarrierTask - Fournit des primitives de synchronisation.
- QTimeoutTask - Fournit des délais basés sur une minuterie.
Politiques de workflow
Les groupes prennent en charge différentes politiques de flux de travail pour le traitement des résultats des tâches :
- StopOnError - Arrête l'exécution dès la première erreur (par défaut).
- ContinueOnError - Poursuit l'exécution malgré les erreurs.
- StopOnSuccess - Arrête l'exécution dès la première tâche réussie.
- ContinueOnSuccess - Poursuit l'exécution malgré les tâches réussies.
- StopOnSuccessOrError - Arrêt dès la première tâche terminée.
- FinishAllAndSuccess - Exécute toutes les tâches et signale la réussite.
- FinishAllAndError - Exécute toutes les tâches et signale une erreur.
Exemples
Référence
Licences
Le module Qt TaskTree est disponible sous licence commerciale auprès de The Qt Company. Il est également disponible sous licence de logiciel libre : la licence publique générale restreinte GNU, version 3, ou la licence publique générale GNU, version 2. Voir la page Licences Qt pour plus de détails.
© 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.