QtTaskTree::Do Class
class QtTaskTree::DoEin Körperelement, das in „For“- und „When“-Konstrukten verwendet wird. Mehr...
| Header: | #include <qtasktree.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree) target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| Seit: | Qt 6.11 |
| Status: | Technologievorschau |
Diese Klasse befindet sich in der Technologievorschau und kann sich noch ändern.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Funktionen
| Do(const QtTaskTree::GroupItems &children) | |
| Do(std::initializer_list<QtTaskTree::GroupItem> children) | |
| Do(QtTaskTree::Do &&other) |
Verwandte Nicht-Mitglieder
| QtTaskTree::Group | operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem) |
Ausführliche Beschreibung
Ein Body-Element, das eine Liste von Aufgaben enthält, die bei jeder Iteration von ` For ` oder nach dem Vorrücken der Barriere von ` When` ausgeführt werden sollen.
For (RepeatIterator(5)) >> Do {
task1,
task2
};Im Falle einer „For“-Schleife wird der Körper von „Do“ mehrfach ausgeführt. Wenn die Handler „ onGroupSetup()“ oder „ onGroupDone()“ Teil der an den Konstruktor von „Do“ übergebenen untergeordneten Elemente sind, werden sie nur einmal ausgeführt – bevor die gesamte Schleife beginnt und nachdem die gesamte Schleife beendet ist:
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)
};Die Ausführung des obigen Rezepts führt zu folgender Ausgabe:
Setup
Current iteration: 0
Current iteration: 1
Current iteration: 2
DoneWenn die Absicht besteht, bei jeder Iteration Gruppen-Handler aufzurufen, umschließen Sie den Do-Körper mit einem zusätzlichen „ Group “, wie folgt:
const Group recipe = For (iterator) >> Do {
Group {
onGroupSetup(onSetup),
QSyncTask(onSync),
onDone(onDone)
}
};Bei Ausführung des letzteren Rezepts wird Folgendes ausgegeben:
Setup
Current iteration: 0
Done
Setup
Current iteration: 1
Done
Setup
Current iteration: 2
DoneÄhnliches geschieht, wenn das ` Storage ` als direktes Kind des Hauptteils übergeben wird. Die Speicherstruktur wird nur einmal instanziiert – bevor die gesamte Schleife beginnt – und wird unmittelbar nach Beendigung der gesamten Schleife zerstört. Wenn für jede Iteration eine separate Instanz des ` Storage ` gewünscht ist, umschließen Sie den Do-Hauptteil mit einem zusätzlichen ` Group`.
Seien Sie vorsichtig beim Platzieren des Elements ` parallel ` im Do-Körper der „ For “-Schleife, da alle Iterationen parallel starten. Dies ist möglicherweise unerwünscht, insbesondere im Fall von ` ForeverIterator`.
Siehe auch „ For “ und „ When “.
Dokumentation zu den Member-Funktionen
[explicit] Do::Do(const QtTaskTree::GroupItems &children)
Erstellt einen „Do“-Körper mit „ children “, der bei jeder Iteration von „ For “ oder nach dem Überschreiten der Barriere von „ When “ ausgeführt wird.
[explicit] Do::Do(std::initializer_list<QtTaskTree::GroupItem> children)
Erstellt einen Do-Körper, wobei „ children “ als Initialisierungsliste übergeben wird.
Dies ist eine überladene Funktion.
[constexpr noexcept default] Do::Do(QtTaskTree::Do &&other)
Erzeugt eine Instanz von „ Do “.
Verwandte Nicht-Mitglieder
QtTaskTree::Group operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem)
Kombiniert „ whenItem “ mit dem „ doItem “-Body und gibt ein „ Group “ zurück, das in Task-Tree-Rezepten verwendet werden kann.
© 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.