QtTaskTree::When Class
class QtTaskTree::WhenÉlément retardant l'exécution d'un corps jusqu'au franchissement d'une barrière. 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 |
| Statut : | Aperçu technologique |
Cette classe est en avant-première technologique et est susceptible d'être modifiée.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| When(const QtTaskTree::BarrierKickerGetter &kicker, QtTaskTree::WorkflowPolicy policy = WorkflowPolicy::StopOnError) | |
| When(const QtTaskTree::QCustomTask<Task, Adapter, Deleter> &customTask, Signal signal, QtTaskTree::WorkflowPolicy policy = QtTaskTree::WorkflowPolicy::StopOnError) | |
| When(QtTaskTree::When &&other) |
Description détaillée
La méthode `When` est utilisée pour retarder l'exécution du corps d'une ` Do ` jusqu'à ce que l'QStoredBarrier e associée soit avancée ou jusqu'à ce que le signal de ` QCustomTask` soit émis. Elle s'utilise en conjonction avec un élément ` Do `, par exemple : ` When () >> Do {}`.
Voir également Do.
Documentation des fonctions membres
[explicit] When::When(const QtTaskTree::BarrierKickerGetter &kicker, QtTaskTree::WorkflowPolicy policy = WorkflowPolicy::StopOnError)
Crée un élément de temporisation, en prenant l'kicker, qui renvoie ExecutableItem, pour qu'il s'exécute en parallèle avec le corps de la Do. Le corps de la Do est mis en attente jusqu'à ce que la QStoredBarrier transmise à la kicker soit avancée. Les ExecutableItem renvoyées par la kicker et le corps de la Do s'exécuteront en parallèle à l'aide de la policy.
Par exemple, si vous souhaitez retarder l’exécution des tâches suivantes jusqu’au lancement de la QProcess, la recette pourrait se présenter comme suit :
const auto kicker = [](const QStoredBarrier &barrier) {
const auto onSetup = [barrier](QProcess &process) {
QObject::connect(&process, &QProcess::started, barrier.activeStorage(), &QBarrier::advance);
... // Setup process program, arguments, environment, etc...
};
return QProcessTask(onSetup);
};
const Group recipe {
When (kicker) >> Do {
delayedTask1,
...
}
};Lorsque la recette ci-dessus est exécutée, QTaskTree exécute QProcessTask en parallèle avec Do. Do est initialement mis en attente ; il reprendra dès que la barrière transmise au « kicker » aura avancé. Cela se produira dès que QProcess aura été lancé. À partir de ce moment-là, QProcess s’exécute en parallèle avec Do.
Voir également Do.
[explicit] template <
typename Task,
typename Adapter,
typename Deleter,
typename Signal
>
When::When(const QtTaskTree::QCustomTask<Task, Adapter, Deleter> &customTask, Signal signal, QtTaskTree::WorkflowPolicy policy = QtTaskTree::WorkflowPolicy::StopOnError)
Crée un élément de retard, en prenant customTask et son Task's signal pour s'exécuter en parallèle avec un corps Do. Le corps Do est retardé jusqu'à ce que le Task's signal soit émis. Le customTask et le corps Do s'exécuteront en parallèle à l'aide du policy.
Le code du constructeur de l’autre `When` pourrait être simplifié comme suit :
const auto onSetup = [barrier](QProcess &process) {
... // Setup process program, arguments, environment, etc...
};
const Group recipe {
When (QProcessTask(onSetup), &QProcess::started) >> Do {
delayedTask1,
...
}
};Remarque : le type « Task » de l’ customTask e transmis doit être dérivé de « QObject ».
Voir également Do.
[constexpr noexcept default] When::When(QtTaskTree::When &&other)
Crée par « move » une instance de ` When`.
© 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.