QtTaskTree::ExecutableItem Class
class QtTaskTree::ExecutableItemBasisklasse für ausführbare Aufgabenelemente. 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 |
| Erbt von: | QtTaskTree::GroupItem |
| Vererbt an: | QtTaskTree::Forever, „ QtTaskTree::Group “, „ QtTaskTree::QCustomTask “ und QtTaskTree::QSyncTask |
| Status: | Technologie-Vorschau |
Diese Klasse befindet sich in der Technologievorschau und kann sich noch ändern.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
| QtTaskTree::Group | withAccept(ObjectSignalGetter &&getter) const |
| QtTaskTree::Group | withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const |
| QtTaskTree::Group | withLog(const QString &logName) const |
| QtTaskTree::Group | withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const |
Verwandte Nicht-Mitglieder
| QtTaskTree::Group | operator!(const QtTaskTree::ExecutableItem &item) |
| QtTaskTree::Group | operator&&(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second) |
| QtTaskTree::Group | operator&&(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result) |
| QtTaskTree::Group | operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second) |
| QtTaskTree::Group | operator||(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result) |
Ausführliche Beschreibung
„ExecutableItem“ bietet eine zusätzliche Schnittstelle für Elemente, die ausführbare Aufgaben enthalten. Verwenden Sie „ withTimeout()“, um einer Aufgabe ein Zeitlimit zuzuweisen. Verwenden Sie „ withLog()“, um Debugging-Informationen zum Start der Aufgabe und zum Ausführungsergebnis einzubinden.
Dokumentation zu den Member-Funktionen
template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withAccept(ObjectSignalGetter &&getter) const
Gibt eine Kopie von this ExecutableItem zurück, die mit einem Signal-Awaiter gekoppelt ist. Der übergebene getter ist eine Funktion, die ein ObjectSignal zurückgibt, das den Emitter und das von ihm erwartete Signal beschreibt. Verwenden Sie makeObjectSignal() innerhalb von getter, um ein ObjectSignal -Objekt zu erstellen.
Wenn this ExecutableItem mit einem Fehler endet, wird das zurückgegebene Group sofort mit einem Fehler beendet, ohne auf das Signal des Awaiters zu warten.
Wenn „ this “ ExecutableItem erfolgreich beendet wird, wird das zurückgegebene „ Group “ nicht sofort beendet, sondern wartet darauf, dass das „awaiting“-Signal gesendet wird. Nachdem das „awaiting“-Signal gesendet wurde, wird das zurückgegebene „ Group “ erfolgreich beendet. Wird das „awaiting“-Signal gesendet, bevor „ this “ ExecutableItem beendet ist, wird die „awaiting“-Phase übersprungen und das zurückgegebene „ Group “ wird synchron beendet.
Die Verbindung zum Signal des „Awaiters“ wird hergestellt, wenn „ this “ ExecutableItem gestartet wird. Wurde das „Awaiting“-Signal bereits zuvor ausgelöst, wird dies nach dem Start von „ this “ ExecutableItem nicht mehr berücksichtigt.
template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const
Macht eine Kopie von this ExecutableItem abbrechbar. Das übergebene getter ist eine Funktion, die ein ObjectSignal zurückgibt, das den Emitter und sein Abbruchsignal beschreibt. Verwenden Sie makeObjectSignal() innerhalb von getter, um ein ObjectSignal -Objekt zu erstellen. Wenn das Abbruchsignal ausgesendet wird, wird this ExecutableItem abgebrochen, ein optional angegebenes postCancelRecipe wird ausgeführt und die zurückgegebene Gruppe endet mit einem Fehler.
Wenn this ExecutableItem beendet wird, bevor das Abbruchsignal ausgegeben wird, endet die zurückgegebene Gruppe sofort mit demselben Ergebnis, mit dem this ExecutableItem beendet wurde. In diesem Fall wird die optional angegebene Funktion postCancelRecipe übersprungen.
Die Verbindung zum Abbruchsignal wird hergestellt, wenn this ExecutableItem gestartet werden soll. Wurde das Abbruchsignal bereits zuvor ausgelöst, wird dies nach dem Start von this ExecutableItem nicht mehr beachtet.
QtTaskTree::Group ExecutableItem::withLog(const QString &logName) const
Fügt einer Kopie von „ this “ ExecutableItem einen benutzerdefinierten Debug-Ausdruck hinzu, der beim Start der Aufgabe und nach deren Beendigung ausgegeben wird, und gibt das verknüpfte Element zurück.
Der Debug-Ausdruck enthält einen Zeitstempel des Ereignisses (Start oder Ende) sowie „ logName “, um die jeweilige Aufgabe im Debug-Protokoll zu identifizieren.
Der Abschlussausdruck enthält zusätzlich die Information, ob die Ausführung synchron oder asynchron erfolgte, ihr Ergebnis (den durch die Enumeration „ DoneWith “ beschriebenen Wert) sowie die Gesamtlaufzeit in Millisekunden.
QtTaskTree::Group ExecutableItem::withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const
Verknüpft „ QTimeoutTask “ mit einer Kopie von „ this “ ExecutableItem, die nach timeout Millisekunden abläuft, mit einem optional angegebenen Timeout handler, und gibt das verknüpfte Element zurück.
Wenn die „ ExecutableItem “ beendet ist, bevor timeout abgelaufen ist, wird das zurückgegebene Element sofort mit dem Ergebnis der Aufgabe beendet. Andernfalls wird handler aufgerufen (sofern angegeben), die Aufgabe wird abgebrochen und das zurückgegebene Element wird mit einem Fehler beendet.
Verwandte Nicht-Mitglieder
QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)
Gibt eine Gruppe zurück, bei der der Wert „ DoneResult “ von „ item “ negiert wurde.
Wenn „ item “ den Wert „ DoneResult::Success “ zurückgibt, gibt das zurückgegebene Element den Wert „ DoneResult::Error “ zurück. Wenn „ item “ den Wert „ DoneResult::Error “ zurückgibt, gibt das zurückgegebene Element den Wert „ DoneResult::Success “ zurück.
Der zurückgegebene Wert entspricht:
Group {
item,
onGroupDone([](DoneWith doneWith) { return toDoneResult(doneWith == DoneWith::Error); })
}Siehe auch operator&&() und operator||().
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
Gibt eine Gruppe zurück, in der die Aufgaben „ first “ und „ second “ unter Verwendung der Konjunktion zusammengeführt wurden.
Sowohl die Aufgabe „ first “ als auch die Aufgabe „ second “ werden nacheinander ausgeführt. Wenn beide Aufgaben „ DoneResult::Success “ melden, gibt das zurückgegebene Element „ DoneResult::Success “ zurück. Andernfalls gibt das zurückgegebene Element „ DoneResult::Error “ zurück.
Das zurückgegebene Element ist kurzgeschlossen: Wenn die Aufgabe „ first “ den Status „ DoneResult::Error “ meldet, wird die Aufgabe „ second “ übersprungen, und das zurückgegebene Element meldet sofort den Status „ DoneResult::Error “.
Das zurückgegebene Element entspricht:
Group { stopOnError, first, second }Hinweis: Dieparallele Ausführung einer Konjunktion mit Kurzschlussauswertung kann mit dem folgenden Code erreicht werden: ` Group { parallel, stopOnError, first, second }`. In diesem Fall gilt: Wenn die zuerst abgeschlossene Aufgabe ` DoneResult::Error` meldet, wird die andere Aufgabe abgebrochen, und die Gruppe meldet sofort ` DoneResult::Error `.
Siehe auch operator||() und operator!().
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)
Gibt die Aufgabe „ item “ zurück, wenn die Aufgabe „ result “ den Wert „ DoneResult::Success “ hat; andernfalls wird die Aufgabe „ item “ zurückgegeben, deren Ergebnis „done“ auf „ DoneResult::Error “ angepasst wurde.
Die Funktion „ task && DoneResult::Error “ entspricht der bedingungslosen Anpassung des „done“-Ergebnisses der Aufgabe auf „ DoneResult::Error “.
Diese Funktion überlädt „ ExecutableItem::operator&&()“.
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
Gibt eine Gruppe zurück, in der die Aufgaben „ first “ und „ second “ disjunktiv zusammengeführt wurden.
Sowohl die Aufgabe „ first “ als auch die Aufgabe „ second “ werden nacheinander ausgeführt. Wenn beide Aufgaben „ DoneResult::Error “ melden, meldet das zurückgegebene Element „ DoneResult::Error “. Andernfalls meldet das zurückgegebene Element „ DoneResult::Success “.
Das zurückgegebene Element unterliegt einem Kurzschluss: Wenn die Aufgabe „ first “ den Status „ DoneResult::Success “ meldet, wird die Aufgabe „ second “ übersprungen, und das zurückgegebene Element meldet sofort den Status „ DoneResult::Success “.
Das zurückgegebene Element entspricht:
Group { stopOnSuccess, first, second }Hinweis: Dieparallele Ausführung einer Disjunktion mit Kurzschlussverhalten lässt sich mit folgendem Code erreichen: ` Group { parallel, stopOnSuccess, first, second }`. In diesem Fall wird, wenn die zuerst fertiggestellte Aufgabe ` DoneResult::Success` meldet, die andere Aufgabe abgebrochen, und die Gruppe meldet sofort ` DoneResult::Success `.
Siehe auch operator&&() und operator!().
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)
Gibt die Aufgabe „ item “ zurück, wenn der „ result “ den Wert „ DoneResult::Error “ hat; andernfalls wird die Aufgabe „ item “ zurückgegeben, wobei ihr Ergebnis „done“ auf „ DoneResult::Success “ angepasst wurde.
Die Funktion „ task || DoneResult::Success “ entspricht der bedingungslosen Anpassung des „done“-Ergebnisses der Aufgabe auf „ DoneResult::Success “.
Diese Funktion überlädt ` ExecutableItem::operator||()`.
© 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.