QtTaskTree::When Class
class QtTaskTree::WhenElemento que retrasa la ejecución de un cuerpo hasta el avance de la barrera. Más...
| Cabecera: | #include <qbarriertask.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree)target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| Desde: | Qt 6.11 |
Nota: Todas las funciones de esta clase son reentrantes.
Funciones Públicas
| 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) |
No miembros relacionados
| QtTaskTree::Group | operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem) |
Descripción detallada
When se utiliza para retrasar la ejecución de un cuerpo de Do hasta que se avance en QStoredBarrier relacionado o hasta que se emita la señal de QCustomTask. Se utiliza en conjunción con Do elemento como: When () >> Do {}.
Véase también Do.
Documentación de la función miembro
[explicit] When::When(const QtTaskTree::BarrierKickerGetter &kicker, QtTaskTree::WorkflowPolicy policy = WorkflowPolicy::StopOnError)
Crea un elemento de retardo, tomando kicker devolviendo ExecutableItem para ser ejecutado en paralelo con un cuerpo Do. El cuerpo Do se retrasa hasta que avanza el QStoredBarrier pasado al kicker. El ExecutableItem devuelto por el kicker y el cuerpo Do se ejecutarán en paralelo utilizando el policy.
Por ejemplo, si desea retrasar la ejecución de las tareas posteriores hasta que se inicie el QProcess, la receta podría tener el siguiente aspecto:
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, ... } };
Cuando se ejecuta la receta anterior, el QTaskTree ejecuta un QProcessTask en paralelo con un cuerpo Do. El cuerpo Do está inicialmente en espera - continuará después de que la barrera pasada al kicker avance. Esto ocurrirá en cuanto se inicie el QProcess. Desde entonces, QProcess se ejecuta en paralelo con el cuerpo Do.
Véase también 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)
Crea un elemento de retardo, tomando customTask y su Task's signal para ejecutarse en paralelo con un cuerpo Do. El cuerpo Do se retrasa hasta que se emite el Task's signal. El customTask y el Do cuerpo se ejecutarán en paralelo utilizando el policy.
El código del constructor del otro When podría simplificarse a:
const auto onSetup = [barrier](QProcess &process) { ... // Setup process program, arguments, environment, etc... }; const Group recipe { When (QProcessTask(onSetup), &QProcess::started) >> Do { delayedTask1, ... } };
Nota: El tipo Task del customTask pasado necesita ser derivado de QObject.
Véase también Do.
No miembros relacionados
QtTaskTree::Group operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem)
Combina whenItem con el cuerpo de doItem y devuelve un Group listo para ser utilizado en las recetas del árbol de tareas.
© 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.