Sur cette page

QtTaskTree::QSyncTask Class

class QtTaskTree::QSyncTask

Exécute de manière synchrone un gestionnaire personnalisé entre les autres tâches. Plus d'informations...

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

Note : Toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

QSyncTask(Handler &&handler)

Description détaillée

QSyncTask est utile lorsque vous souhaitez exécuter un gestionnaire supplémentaire entre d'autres tâches. QSyncTask est considérée par son parent Group comme n'importe quelle autre tâche. Évitez les longues exécutions du corps du gestionnaire de QSyncTask, car il est exécuté de manière synchrone à partir du thread de l'appelant. Si cela est inévitable, envisagez d'utiliser QThreadFunctionTask à la place.

Documentation des fonctions membres

[explicit] template <typename Handler, std::enable_if_t<!std::is_same_v<q20::remove_cvref_t<Handler>, QSyncTask>, bool> = true> QSyncTask::QSyncTask(Handler &&handler)

Construit un élément qui exécute de manière synchrone un handler passé. Le Handler est du type std::function<DoneResult()>. La valeur DoneResult, renvoyée par handler, est prise en compte lors de la résolution workflow policy du groupe parent. La forme abrégée de std::function<void()> est également acceptée. Dans ce cas, on suppose que la valeur de retour est DoneResult::Success.

Le handler passé s'exécute de manière synchrone à partir du thread de l'appelant, évitant ainsi une exécution longue du corps du gestionnaire. Sinon, envisagez d'utiliser QThreadFunctionTask.

Remarque : l'élément QSyncTask n'est pas compté comme une tâche lorsqu'il s'agit de rendre compte de la progression de l'arborescence des tâches et n'est pas inclus dans QTaskTree::taskCount() ou QTaskTree::progressMaximum().

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