QtTaskTree::ExecutableItem Class
class QtTaskTree::ExecutableItemBasisklasse für ausführbare Aufgabenobjekte. Mehr...
| Kopfzeile: | #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: | QtTaskTree::GroupItem |
| Geerbt von: | QtTaskTree::Forever, QtTaskTree::Group, QtTaskTree::QCustomTask, und QtTaskTree::QSyncTask |
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) |
Detaillierte Beschreibung
ExecutableItem bietet eine zusätzliche Schnittstelle für Elemente, die ausführbare Aufgaben enthalten. Verwenden Sie withTimeout(), um eine Zeitüberschreitung an eine Aufgabe anzuhängen. Verwenden Sie withLog(), um Debugging-Informationen über den Start der Aufgabe und das Ausführungsergebnis einzuschließen.
Dokumentation der Mitgliedsfunktionen
template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withAccept(ObjectSignalGetter &&getter) const
Liefert eine Kopie von this ExecutableItem gekoppelt mit einem Signal-Waiter. Die übergebene getter ist eine Funktion, die ein ObjectSignal zurückgibt, das den Sender und das wartende Signal beschreibt. Verwenden Sie makeObjectSignal() innerhalb der getter, um ein ObjectSignal Objekt zu erstellen.
Wenn this ExecutableItem mit einem Fehler beendet wird, wird das zurückgegebene Group sofort mit einem Fehler beendet, ohne auf das Signal des Abwarters zu warten.
Wenn this ExecutableItem mit Erfolg beendet wird, wird das zurückgegebene Group nicht sofort beendet, sondern wartet auf das Wartesignal, das gesendet wird. Nachdem das Wartesignal gesendet wurde, wird das zurückgegebene Group mit Erfolg beendet. Wenn das Wartesignal gesendet wird, bevor this ExecutableItem beendet ist, wird die Wartephase übersprungen und die zurückgegebene Group wird synchron beendet.
Die Verbindung zum Wartesignal wird hergestellt, wenn this ExecutableItem kurz vor dem Start steht. Wenn das Wartesignal vorher ausgelöst wurde, wird dies nicht bemerkt, nachdem this ExecutableItem gestartet wurde.
template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const
Macht eine Kopie von this ExecutableItem abbrechbar. Die übergebene getter ist eine Funktion, die ein ObjectSignal zurückgibt, das den Emitter und sein Abbruchsignal beschreibt. Verwenden Sie makeObjectSignal() innerhalb der getter, um ein ObjectSignal Objekt zu erstellen. Wenn das Abbruchsignal gesendet wird, wird this ExecutableItem abgebrochen, eine optional bereitgestellte postCancelRecipe wird ausgeführt und die zurückgegebene Gruppe wird mit einem Fehler beendet.
Wenn this ExecutableItem beendet wird, bevor das Abbruchsignal ausgegeben wird, wird die zurückgegebene Gruppe sofort mit demselben Ergebnis beendet, mit dem this ExecutableItem beendet wurde. In diesem Fall wird die optional bereitgestellte postCancelRecipe übersprungen.
Die Verbindung zum Abbruchsignal wird hergestellt, wenn this ExecutableItem kurz davor ist, gestartet zu werden. Wenn das Abbruchsignal vorher ausgelöst wurde, wird dies nicht bemerkt, nachdem this ExecutableItem gestartet wurde.
QtTaskTree::Group ExecutableItem::withLog(const QString &logName) const
Hängt einen benutzerdefinierten Debug-Ausdruck an eine Kopie von this ExecutableItem an, der beim Start der Aufgabe und nach Beendigung der Aufgabe ausgegeben wird, und gibt das gekoppelte Element zurück.
Der Debug-Ausdruck enthält einen Zeitstempel des Ereignisses (Start oder Ende) und logName, um die spezifische Aufgabe im Debug-Protokoll zu identifizieren.
Der Beendigungsausdruck enthält die zusätzlichen Informationen, ob die Ausführung synchron oder asynchron war, das Ergebnis (den durch DoneWith enum beschriebenen Wert) und die Gesamtausführungszeit in Millisekunden.
QtTaskTree::Group ExecutableItem::withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const
Hängt QTimeoutTask an eine Kopie von this ExecutableItem an, verstreicht nach timeout in Millisekunden, mit einem optionalen Timeout handler, und gibt das gekoppelte Element zurück.
Wenn ExecutableItem beendet wird, bevor timeout durchläuft, wird das zurückgegebene Element sofort mit dem Ergebnis der Aufgabe beendet. Andernfalls wird handler aufgerufen (falls angegeben), die Aufgabe wird abgebrochen und das zurückgegebene Element mit einem Fehler beendet.
Verwandte Nicht-Mitglieder
QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)
Gibt eine Gruppe zurück, bei der die DoneResult von item negiert ist.
Wenn item DoneResult::Success meldet, meldet das zurückgegebene Element DoneResult::Error. Wenn item DoneResult::Error meldet, meldet das zurückgegebene Element DoneResult::Success.
Das zurückgegebene Element ist äquivalent zu:
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 mit first und second Aufgaben mit Konjunktion zusammengeführt.
Die beiden Aufgaben first und second werden nacheinander ausgeführt. Wenn beide Aufgaben DoneResult::Success melden, meldet das zurückgegebene Element DoneResult::Success. Andernfalls meldet das zurückgegebene Element DoneResult::Error.
Das zurückgegebene Element ist ein Kurzschluss: Wenn die Aufgabe first DoneResult::Error meldet, wird die Aufgabe second übersprungen, und das zurückgegebene Element meldet sofort DoneResult::Error.
Das zurückgegebene Element ist äquivalent zu:
Group { stopOnError, first, second }Hinweis: Die parallele Ausführung der Konjunktion im Kurzschlussverfahren kann mit folgendem Code erreicht werden: Group { parallel, stopOnError, first, second }. In diesem Fall: Wenn die erste beendete 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 result DoneResult::Success ist; andernfalls wird die Aufgabe item zurückgegeben, deren Erledigungsergebnis in DoneResult::Error umgewandelt wurde.
Die task && DoneResult::Error ist gleichbedeutend mit der bedingungslosen Änderung des Ergebnisses der Aufgabe in DoneResult::Error.
Diese Funktion überlastet ExecutableItem::operator&&().
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
Gibt eine Gruppe mit first und second Aufgaben zurück, die mit Disjunktion zusammengeführt wurden.
Die beiden Aufgaben first und 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 ist ein Kurzschluss: Wenn die Aufgabe first DoneResult::Success meldet, wird die Aufgabe second übersprungen, und das zurückgegebene Element meldet sofort DoneResult::Success.
Das zurückgegebene Element ist äquivalent zu:
Group { stopOnSuccess, first, second }Hinweis: Die parallele Ausführung der Disjunktion in Form eines Kurzschlusses kann mit folgendem Code erreicht werden: Group { parallel, stopOnSuccess, first, second }. In diesem Fall, wenn die erste beendete Aufgabe DoneResult::Success meldet, wird 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 result DoneResult::Error ist; andernfalls wird die Aufgabe item zurückgegeben, deren Erledigungsergebnis in DoneResult::Success umgewandelt wurde.
Die task || DoneResult::Success ist gleichbedeutend mit der bedingungslosen Änderung des Ergebnisses der Aufgabe in DoneResult::Success.
Diese Funktion überlastet 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.