QtTaskTree::Do Class
class QtTaskTree::DoElemento del cuerpo utilizado con las construcciones For y When. Más...
| Cabecera: | #include <qtasktree.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
| Do(const QtTaskTree::GroupItems &children) | |
| Do(std::initializer_list<QtTaskTree::GroupItem> children) |
Descripción detallada
Un elemento del cuerpo, que contiene una lista de tareas a ejecutar en cada iteración de For o después de que la barrera de When haya avanzado.
For (RepeatIterator(5)) >> Do { task1, task2 };
En caso de bucle For, el cuerpo del Do se ejecutará múltiples veces. Si los manejadores onGroupSetup() o onGroupDone() son parte de los hijos pasados al constructor de Do, serán ejecutados sólo una vez - antes de que el bucle completo comience, y después de que el bucle completo termine:
const RepeatIterator iterator(3); const auto onSetup = [] { qDebug() << "Setup"; }; const auto onSync = [iterator] { qDebug() << "Current iteration:" << iterator->iteration(); }; const auto onDone = [] { qDebug() << "Done"; }; const Group recipe = For (iterator) >> Do { onGroupSetup(onSetup), QSyncTask(onSync), onDone(onDone) };
La receta anterior, cuando se ejecute, dará salida:
Setup Current iteration: 0 Current iteration: 1 Current iteration: 2 Done
Si la intención es invocar manejadores de grupo en cada iteración, encierre el cuerpo de Do con un Group extra, como:
const Group recipe = For (iterator) >> Do { Group { onGroupSetup(onSetup), QSyncTask(onSync), onDone(onDone) } };
Esta última receta, cuando se ejecute, dará como resultado:
Setup Current iteration: 0 Done Setup Current iteration: 1 Done Setup Current iteration: 2 Done
Lo mismo ocurre cuando el Storage se pasa como hijo directo del cuerpo. La estructura de almacenamiento se instanciará una sola vez, antes de que comience todo el bucle, y se destruirá justo después de que finalice todo el bucle. Si la intención es tener una instancia separada del Storage para cada iteración, encierre el cuerpo Do con un Group extra.
Tenga cuidado al colocar el elemento parallel en el cuerpo del Do del bucle For, ya que todas las iteraciones comenzarán en paralelo. Esto podría no ser deseado, especialmente en el caso de ForeverIterator.
Documentación de Funciones Miembro
[explicit] Do::Do(const QtTaskTree::GroupItems &children)
Construye un cuerpo Do con children para ser ejecutado en cada iteración de For o después de que la barrera de When haya avanzado.
[explicit] Do::Do(std::initializer_list<QtTaskTree::GroupItem> children)
Construye un cuerpo Do con children pasado como lista inicializadora.
Esta es una función sobrecargada.
© 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.