QtTaskTree Namespace
Der QtTaskTree-Namensraum umfasst alle Klassen und globalen Funktionen des TaskTree-Moduls. Mehr...
| Kopfzeile: | #include <QtTaskTree> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree)target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| Seit: | Qt 6.11 |
Klassen
(since 6.11) class | Do |
(since 6.11) class | Else |
(since 6.11) class | ElseIf |
(since 6.11) class | ExecutableItem |
(since 6.11) class | ExecutionMode |
(since 6.11) class | For |
(since 6.11) class | Forever |
(since 6.11) class | ForeverIterator |
(since 6.11) class | Group |
(since 6.11) class | GroupItem |
(since 6.11) class | If |
(since 6.11) class | Iterator |
(since 6.11) class | ListIterator |
(since 6.11) struct | ObjectSignal |
(since 6.11) class | ParallelLimit |
(since 6.11) class | QBarrier |
(since 6.11) class | QCustomTask |
(since 6.11) class | QDefaultTaskAdapter |
(since 6.11) class | QMappedTaskTreeRunner |
(since 6.11) class | QNetworkReplyWrapper |
(since 6.11) class | QParallelTaskTreeRunner |
(since 6.11) class | QProcessTaskDeleter |
(since 6.11) class | QSequentialTaskTreeRunner |
(since 6.11) class | QSingleTaskTreeRunner |
(since 6.11) class | QStartedBarrier |
(since 6.11) class | QSyncTask |
(since 6.11) class | QTaskInterface |
(since 6.11) class | QTaskTree |
(since 6.11) class | QTcpSocketWrapper |
(since 6.11) class | QThreadFunction |
(since 6.11) class | QThreadFunctionBase |
(since 6.11) class | RepeatIterator |
(since 6.11) class | Storage |
(since 6.11) class | Then |
(since 6.11) class | UntilIterator |
(since 6.11) class | When |
Typen
| BarrierKickerGetter | |
| flags | CallDone |
| enum class | CallDoneFlag { Never, OnSuccess, OnError, OnCancel, Always } |
| enum class | DoneResult { Success, Error } |
| enum class | DoneWith { Success, Error, Cancel } |
| GroupItems | |
| QBarrierTask | |
| QNetworkReplyWrapperTask | |
| QProcessTask | |
| QStoredBarrier | |
| QTaskTreeTask | |
| QTcpSocketWrapperTask | |
| QThreadFunctionTask | |
| QTimeoutTask | |
| enum class | SetupResult { Continue, StopWithSuccess, StopWithError } |
| TreeDoneHandler | |
| TreeSetupHandler | |
| enum class | WorkflowPolicy { StopOnError, ContinueOnError, StopOnSuccess, ContinueOnSuccess, StopOnSuccessOrError, …, FinishAllAndError } |
Variablen
| const QtTaskTree::GroupItem | continueOnError |
| const QtTaskTree::GroupItem | continueOnSuccess |
| const QtTaskTree::ExecutableItem | errorItem |
| const QtTaskTree::GroupItem | finishAllAndError |
| const QtTaskTree::GroupItem | finishAllAndSuccess |
| const QtTaskTree::GroupItem | nullItem |
| const QtTaskTree::ExecutionMode | parallel |
| const QtTaskTree::ExecutionMode | parallelIdealThreadCountLimit |
| const QtTaskTree::ExecutionMode | sequential |
| const QtTaskTree::GroupItem | stopOnError |
| const QtTaskTree::GroupItem | stopOnSuccess |
| const QtTaskTree::GroupItem | stopOnSuccessOrError |
| const QtTaskTree::ExecutableItem | successItem |
Funktionen
| QtTaskTree::ExecutableItem | barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier) |
| QtTaskTree::ObjectSignal<std::decay_t<Signal>> | makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal) |
| QtTaskTree::GroupItem | onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always) |
| QtTaskTree::GroupItem | onGroupSetup(Handler &&handler) |
| QtTaskTree::ExecutableItem | signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal) |
| QtTaskTree::ExecutableItem | timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error) |
| QtTaskTree::GroupItem | workflowPolicy(QtTaskTree::WorkflowPolicy policy) |
Klassen
Klasse Do
Ein Body-Element, das mit For- und When-Konstrukten verwendet wird. Mehr...
Klasse Else
Ein "else"-Element, das in bedingten Ausdrücken verwendet wird. Mehr...
Klasse ElseIf
Ein "else if"-Element, das in bedingten Ausdrücken verwendet wird. Mehr...
Klasse ExecutableItem
Basisklasse für ausführbare Aufgaben-Elemente. Mehr...
Klasse ExecutionMode
Das Gruppenelement, das den Ausführungsmodus beschreibt. Mehr...
Klasse For
Ein for-Schleifen-Element. Mehr...
Klasse Forever
Unendliche Schleife von Teilaufgaben. Mehr...
Klasse ForeverIterator
Unendlicher Iterator, der innerhalb des For-Elements verwendet wird. Mehr...
Klasse Group
Group stellt das Basiselement für das Zusammenstellen von deklarativen Rezepten dar, die beschreiben, wie ein verschachtelter Baum von asynchronen Aufgaben auszuführen und zu behandeln ist. Mehr...
Klasse GroupItem
GroupItem stellt das Basiselement dar, das Teil einer beliebigen Group sein kann. Mehr...
Klasse If
Ein "if"-Element, das in bedingten Ausdrücken verwendet wird. Mehr...
Klasse Iterator
Basisklasse, die als Iterator innerhalb eines For-Elements verwendet wird. Mehr...
Klasse ListIterator
Der Listen-Iterator, der innerhalb des For-Elements verwendet werden soll. Mehr...
Klasse ObjectSignal
Struktur, die die Unterklasse QObject und ihr Signal beschreibt. Mehr...
class ParallelLimit
Der parallele Ausführungsmodus mit einem benutzerdefinierten Limit. Mehr...
Klasse QBarrier
Eine asynchrone Aufgabe, die bei Bedarf beendet wird. Mehr...
Klasse QCustomTask
Eine Klassenvorlage, die zur Deklaration von benutzerdefinierten Aufgaben und zur Definition ihrer Setup- und Done-Handler verwendet wird. Mehr...
Klasse QDefaultTaskAdapter
Eine Klassenvorlage, die den in QCustomTask verwendeten Standard-Task-Adapter bereitstellt. Mehr...
Klasse QMappedTaskTreeRunner
Ein Controller für die Ausführung eines gemappten Taskbaums mit einem bestimmten Schlüsseltyp. Mehr...
Klasse QNetworkReplyWrapper
Ein Wrapper um QNetworkReply und QNetworkAccessManager. Mehr...
Klasse QParallelTaskTreeRunner
Ein Controller für die Ausführung eines parallelen Aufgabenbaums. Mehr...
Klasse QProcessTaskDeleter
Ein benutzerdefinierter Deleter für QProcess, verwendet von QProcessTask. Mehr...
Klasse QSequentialTaskTreeRunner
Ein sequentieller Taskbaum-Ausführungscontroller. Mehr...
Klasse QSingleTaskTreeRunner
Ein Controller für die Ausführung eines einzelnen Taskbaums. Mehr...
Klasse QStartedBarrier
Eine gestartete QBarrier mit einer gegebenen Grenze. Mehr...
Klasse QSyncTask
Führt einen benutzerdefinierten Handler synchron zwischen anderen Tasks aus. Mehr...
Klasse QTaskInterface
QTaskInterface ist eine Hilfsklasse, die bei der Anpassung der Schnittstelle von benutzerdefinierten Tasks verwendet wird. Mehr...
Klasse QTaskTree
Die Klasse QTaskTree verwaltet den Baum asynchroner Tasks, die auf deklarative Weise definiert wurden. Mehr...
Klasse QTcpSocketWrapper
Ein Wrapper um QTcpSocket. Mehr...
Klasse QThreadFunction
Eine Klassenvorlage, die die Ausführung einer Funktion in einem separaten Thread über QtConcurrent::run() steuert. Mehr...
Klasse QThreadFunctionBase
Eine Basisklasse für QThreadFunction Klassenvorlage. Mehr...
Klasse RepeatIterator
Der sich wiederholende Iterator, der innerhalb des Elements For verwendet wird. Mehr...
Klasse Storage
Eine Klassenvorlage für den benutzerdefinierten Datenaustausch im laufenden Aufgabenbaum. Mehr...
Klasse Then
Ein "Then"-Element, das in bedingten Ausdrücken verwendet wird. Mehr...
Klasse UntilIterator
Der bedingte Iterator, der innerhalb des For-Elements verwendet wird. Mehr...
Klasse When
Ein Element, das die Ausführung eines Körpers bis zur Barriere hinauszögert. Mehr...
Typ Dokumentation
[alias] BarrierKickerGetter
Typ-Alias für die Funktion, die eine QStoredBarrier annimmt und ExecutableItem zurückgibt, d.h. std::function<ExecutableItem(const QStoredBarrier &)>, zur Verwendung im When Konstruktor.
enum class QtTaskTree::CallDoneFlag
flags QtTaskTree::CallDone
Diese Aufzählung ist ein optionales Argument für das onGroupDone() Element oder den Konstruktor einer benutzerdefinierten Aufgabe. Es weist den TaskTree an, wann der done-Handler der Gruppe oder Aufgabe aufgerufen werden soll.
| Konstante | Wert | Beschreibung |
|---|---|---|
QtTaskTree::CallDoneFlag::Never | 0 | Der done-Handler wird nie aufgerufen. |
QtTaskTree::CallDoneFlag::OnSuccess | 1 << 0 | Der done-Handler wird nur nach erfolgreicher Ausführung aufgerufen, d.h. wenn DoneWith::Success. |
QtTaskTree::CallDoneFlag::OnError | 1 << 1 | Der done-Handler wird nur nach einer fehlgeschlagenen Ausführung aufgerufen, d. h. wenn DoneWith::Error. |
QtTaskTree::CallDoneFlag::OnCancel | 1 << 2 | Der done-Handler wird nur nach einer abgebrochenen Ausführung aufgerufen, d. h. wenn DoneWith::Cancel. |
QtTaskTree::CallDoneFlag::Always | OnSuccess | OnError | OnCancel | Der Done-Handler wird immer aufgerufen. |
Der Typ CallDone ist ein Typedef für QFlags<CallDoneFlag>. Er speichert eine ODER-Kombination von CallDoneFlag-Werten.
enum class QtTaskTree::DoneResult
Diese Aufzählung wird optional von der done-Handler-Funktion der Gruppe oder Aufgabe zurückgegeben. Wenn der done-Handler keinen Wert zurückgibt, d.h. sein Rückgabetyp void ist, wird sein endgültiger Rückgabewert automatisch vom laufenden Task-Baum abgeleitet und an die übergeordnete Gruppe gemeldet.
Wenn der done-Handler das DoneResult zurückgibt, können Sie den endgültigen Rückgabewert innerhalb des Handlers ändern.
Wenn das DoneResult vom Done-Handler der Gruppe zurückgegeben wird, wird die Workflow-Richtlinie der Gruppe ignoriert.
Dieses Enum wird auch innerhalb des Signals TaskInterface::done() verwendet und zeigt an, ob die Aufgabe erfolgreich oder mit einem Fehler beendet wurde.
| Konstante | Wert | Beschreibung |
|---|---|---|
QtTaskTree::DoneResult::Success | 0 | Die Ausführung der Gruppe oder Aufgabe wird mit Erfolg beendet. |
QtTaskTree::DoneResult::Error | 1 | Die Ausführung der Gruppe oder des Tasks endet mit einem Fehler. |
enum class QtTaskTree::DoneWith
Diese Aufzählung ist ein optionales Argument für den done-Handler der Gruppe oder Aufgabe. Es zeigt an, ob die Gruppe oder Aufgabe mit Erfolg oder einem Fehler beendet oder abgebrochen wurde.
Es wird auch als Argument innerhalb des QTaskTree::done()-Signals verwendet und gibt das Endergebnis der Ausführung von QTaskTree an.
| Konstante | Wert | Beschreibung |
|---|---|---|
QtTaskTree::DoneWith::Success | 0 | Die Ausführung der Gruppe oder Aufgabe wurde mit Erfolg beendet. |
QtTaskTree::DoneWith::Error | 1 | Die Ausführung der Gruppe oder des Tasks wurde mit einem Fehler beendet. |
QtTaskTree::DoneWith::Cancel | 2 | Die Ausführung der Gruppe oder des Tasks wurde abgebrochen. Dies geschieht, wenn der Benutzer QTaskTree::cancel() für den laufenden Aufgabenbaum aufruft oder wenn die Workflow-Richtlinie der Gruppe dazu führt, dass einige ihrer laufenden Kinder abgebrochen werden. Die Änderung des Endergebnisses des done-Handlers durch die Rückgabe von DoneResult aus dem Handler ist nicht möglich, wenn die Ausführung der Gruppe oder Aufgabe abgebrochen wurde. |
[alias] QtTaskTree::GroupItems
Geben Sie den Alias für QList<GroupItem> ein.
[alias] QBarrierTask
Typ-Alias für die QCustomTask<QBarrier>, der in Rezepten verwendet werden kann.
[alias] QNetworkReplyWrapperTask
Typ-Alias für die QCustomTask<QNetworkReplyWrapper>, der in Rezepten verwendet werden kann.
[alias] QProcessTask
Geben Sie einen Alias für QCustomTask<QProcess> unter Verwendung von QProcessTaskDeleter ein, der in Rezepten verwendet werden kann.
[alias] QStoredBarrier
Typ-Alias für die QtTaskTree::Storage<QStartedBarrier>, der in Rezepten verwendet werden kann.
[alias] QTaskTreeTask
Typ-Alias für die QCustomTask<QTaskTree>, der in Rezepten verwendet werden kann.
[alias] QTcpSocketWrapperTask
Typ-Alias für die QCustomTask<QTcpSocketWrapper>, der in Rezepten verwendet werden kann.
[alias] template <typename ResultType> QThreadFunctionTask
Typ-Alias für die QCustomTask<QThreadFunction<ResultType>>, die innerhalb von Rezepten verwendet werden kann.
[alias] QTimeoutTask
Geben Sie einen Alias für QCustomTask<std::chrono::milliseconds> ein, der in Rezepten verwendet werden soll. Die std::chrono::milliseconds wird verwendet, um die Timeout-Dauer festzulegen. Der Standard-Timeout ist std::chrono::milliseconds::zero(), d.h. der QTimeoutTask wird beendet, sobald die Steuerung zur laufenden Ereignisschleife zurückkehrt.
Beispiel für die Verwendung:
using namespace std::chrono; using namespace std::chrono_literals; const auto onSetup = [](milliseconds &timeout) { timeout = 1000ms; } const auto onDone = [] { qDebug() << "Timed out."; } const Group root { QTimeoutTask(onSetup, onDone) };
Siehe auch timeoutTask().
enum class QtTaskTree::SetupResult
Diese Aufzählung wird optional von der Setup-Handler-Funktion der Gruppe oder Aufgabe zurückgegeben. Sie weist den laufenden Aufgabenbaum an, wie er nach Beendigung der Ausführung des Setup-Handlers fortfahren soll.
| Konstante | Wert | Beschreibung |
|---|---|---|
QtTaskTree::SetupResult::Continue | 0 | Voreinstellung. Die Ausführung der Gruppe oder Aufgabe wird normal fortgesetzt. Wenn der Setup-Handler einer Gruppe oder eines Tasks void zurückgibt, wird angenommen, dass er Continue zurückgegeben hat. |
QtTaskTree::SetupResult::StopWithSuccess | 1 | Die Ausführung der Gruppe oder des Tasks wird bei Erfolg sofort beendet. Wenn der Setup-Handler der Gruppe einen Rückgabewert liefert, werden alle untergeordneten Aufgaben übersprungen, und der onGroupDone()-Handler der Gruppe wird mit DoneWith::Success aufgerufen. Die Gruppe meldet den Erfolg an ihre Muttergesellschaft. Die Workflow-Richtlinie der Gruppe wird ignoriert. Wenn der Setup-Handler der Aufgabe zurückgegeben wird, wird die Aufgabe nicht gestartet, ihr Done-Handler wird nicht aufgerufen und die Aufgabe meldet den Erfolg an ihre Muttergesellschaft. |
QtTaskTree::SetupResult::StopWithError | 2 | Die Ausführung der Gruppe oder Aufgabe wird sofort mit einem Fehler beendet. Wenn der Setup-Handler der Gruppe zurückkehrt, werden alle untergeordneten Aufgaben übersprungen, und der onGroupDone()-Handler der Gruppe wird mit DoneWith::Error aufgerufen. Die Gruppe meldet einen Fehler an ihre Muttergesellschaft. Die Workflow-Richtlinie der Gruppe wird ignoriert. Wenn der Setup-Handler der Aufgabe zurückkehrt, wird die Aufgabe nicht gestartet, ihr Fehler-Handler wird nicht aufgerufen und die Aufgabe meldet einen Fehler an ihre Eltern. |
[alias] QtTaskTree::TreeDoneHandler
Typ-Alias für std::function<void(const QTaskTree &, QtTaskTree::DoneWith)>.
TreeDoneHandler ist ein optionales Argument für die Funktionen des Aufgabenbaum-Läufers, die die Ausführung des Aufgabenbaums planen. Die Funktion wird aufgerufen, wenn das Rezept des Task-Tree-Läufers die Ausführung beendet hat. Der Zugriff auf QTaskTree und das Ergebnis des Rezepts erfolgt über die übergebenen Argumente.
Die Task-Tree-Runner akzeptieren auch Handler in einer verkürzten Form von std::function<void(const QTaskTree &)>, std::function<void(QtTaskTree::DoneWith)> oder std::function<void(void)>.
[alias] QtTaskTree::TreeSetupHandler
Typ-Alias für std::function<void(QTaskTree &)>.
TreeSetupHandler ist ein optionales Argument für die Funktionen des Aufgabenbaum-Läufers, die die Ausführung des Aufgabenbaums planen. Die Funktion wird aufgerufen, wenn der Task-Tree-Runner im Begriff ist, sein Rezept auszuführen. Der Zugriff auf QTaskTree erfolgt über das übergebene Argument.
Die Task-Tree-Runner akzeptieren auch Handler in einer verkürzten Form von std::function<void(void)>.
enum class QtTaskTree::WorkflowPolicy
Diese Aufzählung beschreibt das mögliche Verhalten des Gruppenelements, wenn eine untergeordnete Aufgabe einer Gruppe ihre Ausführung beendet. Sie wird auch verwendet, wenn die laufende Gruppe abgebrochen wird.
| Konstante | Wert | Beschreibung |
|---|---|---|
QtTaskTree::WorkflowPolicy::StopOnError | 0 | Standardwert. Entspricht dem globalen Element stopOnError. Wenn eine untergeordnete Aufgabe mit einem Fehler endet, wird die Gruppe angehalten und mit einem Fehler beendet. Wenn alle untergeordneten Aufgaben mit Erfolg abgeschlossen wurden, wird die Gruppe mit Erfolg beendet. Wenn eine Gruppe leer ist, wird sie mit Erfolg beendet. |
QtTaskTree::WorkflowPolicy::ContinueOnError | 1 | Entspricht dem globalen Element continueOnError. Ähnlich wie stopOnError, aber wenn eine untergeordnete Aufgabe mit einem Fehler endet, wird die Ausführung fortgesetzt, bis alle Aufgaben beendet sind, und die Gruppe meldet anschließend einen Fehler, auch wenn einige andere Aufgaben in der Gruppe erfolgreich beendet wurden. Wenn alle untergeordneten Aufgaben erfolgreich beendet werden, wird die Gruppe mit Erfolg beendet. Wenn eine Gruppe leer ist, wird sie mit Erfolg beendet. |
QtTaskTree::WorkflowPolicy::StopOnSuccess | 2 | Entspricht dem globalen Element stopOnSuccess. Wenn eine beliebige untergeordnete Aufgabe erfolgreich abgeschlossen wurde, wird die Gruppe angehalten und mit Erfolg abgeschlossen. Wenn alle untergeordneten Aufgaben mit einem Fehler beendet wurden, wird die Gruppe mit einem Fehler beendet. Wenn eine Gruppe leer ist, wird sie mit einem Fehler beendet. |
QtTaskTree::WorkflowPolicy::ContinueOnSuccess | 3 | Entspricht dem globalen Element continueOnSuccess. Ähnlich wie stopOnSuccess, aber wenn eine der untergeordneten Aufgaben erfolgreich beendet wird, wird die Ausführung fortgesetzt, bis alle Aufgaben beendet sind, und die Gruppe meldet anschließend Erfolg, auch wenn einige andere Aufgaben in der Gruppe mit einem Fehler beendet wurden. Wenn alle untergeordneten Aufgaben mit einem Fehler enden, wird die Gruppe mit einem Fehler beendet. Wenn eine Gruppe leer ist, wird sie mit einem Fehler beendet. |
QtTaskTree::WorkflowPolicy::StopOnSuccessOrError | 4 | Entspricht dem globalen Element stopOnSuccessOrError. Die Gruppe startet so viele Aufgaben, wie sie kann. Wenn eine Aufgabe beendet wird, hält die Gruppe an und meldet das Ergebnis der Aufgabe. Nur im parallelen Modus nützlich. Im sequentiellen Modus wird nur die erste Aufgabe gestartet, und wenn sie beendet ist, wird auch die Gruppe beendet, so dass die anderen Aufgaben immer übersprungen werden. Wenn eine Gruppe leer ist, wird sie mit einem Fehler beendet. |
QtTaskTree::WorkflowPolicy::FinishAllAndSuccess | 5 | Entspricht dem globalen Element finishAllAndSuccess. Die Gruppe führt alle Aufgaben aus und ignoriert deren Rückgabeergebnisse. Wenn alle Aufgaben abgeschlossen sind, wird die Gruppe mit Erfolg beendet. Wenn eine Gruppe leer ist, wird sie mit Erfolg beendet. |
QtTaskTree::WorkflowPolicy::FinishAllAndError | 6 | Entspricht dem globalen Element finishAllAndError. Die Gruppe führt alle Aufgaben aus und ignoriert deren Rückgabeergebnisse. Wenn alle Aufgaben abgeschlossen sind, wird die Gruppe mit einem Fehler beendet. Wenn eine Gruppe leer ist, wird sie mit einem Fehler beendet. |
Wenn das Ergebnis einer untergeordneten Aufgabe die Gruppe zum Anhalten veranlasst, d. h. im Falle der Richtlinien StopOnError, StopOnSuccess oder StopOnSuccessOrError, bricht die Gruppe die anderen laufenden untergeordneten Aufgaben ab (falls vorhanden - z. B. im parallelen Modus) und überspringt die Ausführung von Aufgaben, die sie noch nicht gestartet hat (z. B. im sequenziellen Modus - diejenigen, die nach der fehlgeschlagenen Aufgabe platziert sind). Sowohl das Abbrechen als auch das Überspringen von untergeordneten Aufgaben kann passieren, wenn ParallelLimit verwendet wird.
In der folgenden Tabelle sind die Unterschiede zwischen den verschiedenen Workflow-Policies zusammengefasst:
| WorkflowPolicy | Führt alle untergeordneten Aufgaben aus | Ergebnis | Ergebnis, wenn die Gruppe leer ist |
|---|---|---|---|
| StopOnError | Hält an, wenn eine untergeordnete Aufgabe mit einem Fehler endet und meldet einen Fehler | Ein Fehler, wenn mindestens eine untergeordnete Aufgabe fehlgeschlagen ist, ansonsten Erfolg | Erfolg |
| ContinueOnError | Ja | Fehler, wenn mindestens eine untergeordnete Aufgabe fehlgeschlagen ist, ansonsten Erfolg | Erfolg |
| StopOnSuccess | Hält an, wenn eine untergeordnete Aufgabe erfolgreich abgeschlossen wurde und meldet Erfolg | Erfolg, wenn mindestens eine untergeordnete Aufgabe erfolgreich war, andernfalls ein Fehler | Ein Fehler |
| ContinueOnSuccess | Ja | Erfolg, wenn mindestens eine untergeordnete Aufgabe erfolgreich war, andernfalls ein Fehler | Ein Fehler |
| StopOnSuccessOrError | Hält an, wenn eine untergeordnete Aufgabe beendet wurde und meldet das Ergebnis der untergeordneten Aufgabe | Erfolg oder Fehler, je nach dem Ergebnis der beendeten untergeordneten Aufgabe | Ein Fehler |
| FinishAllAndSuccess | Ja | Erfolg | Erfolg |
| FinishAllAndError | Ja | Ein Fehler | ein Fehler |
Wenn ein Kind einer Gruppe ebenfalls eine Gruppe ist, führt die Kindgruppe ihre Aufgaben gemäß ihrer eigenen Workflow-Richtlinie aus. Wenn eine übergeordnete Gruppe die laufende untergeordnete Gruppe aufgrund der Workflow-Richtlinie der übergeordneten Gruppe anhält, d. h. wenn die Richtlinie StopOnError, StopOnSuccess oder StopOnSuccessOrError für die übergeordnete Gruppe verwendet wurde, wird das Ergebnis der untergeordneten Gruppe in der Spalte Ergebnis und in der Zeile der Workflow-Richtlinie der untergeordneten Gruppe in der obigen Tabelle angegeben.
Variable Dokumentation
const QtTaskTree::GroupItem QtTaskTree::continueOnError
Ein praktisches globales Gruppenelement, das die Workflow-Richtlinie ContinueOnError beschreibt.
const QtTaskTree::GroupItem QtTaskTree::continueOnSuccess
Ein praktisches globales Gruppenelement, das die Workflow-Richtlinie ContinueOnSuccess beschreibt.
const QtTaskTree::ExecutableItem QtTaskTree::errorItem
Ein praktisches globales ausführbares Element, das eine leere, fehlerhafte, synchrone Aufgabe enthält.
Dies ist in if-Anweisungen nützlich, um anzuzeigen, dass eine Verzweigung mit einem Fehler endet:
const ExecutableItem conditionalTask = ...; Group group { stopOnError, If (conditionalTask) >> Then { ... } >> Else { errorItem }, nextTask };
Wenn im obigen Beispiel die Verzweigung conditionalTask mit einem Fehler endet, wird die Verzweigung Else gewählt, die sofort mit einem Fehler endet. Dies führt dazu, dass nextTask übersprungen wird (aufgrund der stopOnError Workflow-Politik von group) und group mit einem Fehler endet.
Siehe auch successItem.
const QtTaskTree::GroupItem QtTaskTree::finishAllAndError
Ein praktisches globales Gruppenelement, das die Workflow-Richtlinie FinishAllAndError beschreibt.
const QtTaskTree::GroupItem QtTaskTree::finishAllAndSuccess
Ein praktisches globales Gruppenelement, das die Workflow-Richtlinie FinishAllAndSuccess beschreibt.
const QtTaskTree::GroupItem QtTaskTree::nullItem
Ein praktisches globales Gruppenelement, das ein No-op-Element anzeigt.
Dies ist in bedingten Ausdrücken nützlich, um das Nichtvorhandensein eines optionalen Elements anzuzeigen:
const ExecutableItem task = ...; const std::optional<ExecutableItem> optionalTask = ...; Group group { task, optionalTask ? *optionalTask : nullItem };
const QtTaskTree::ExecutionMode QtTaskTree::parallel
Ein praktisches globales Gruppenelement, das den parallelen Ausführungsmodus beschreibt.
Alle direkten untergeordneten Aufgaben einer Gruppe werden nach dem Start der Gruppe gestartet, ohne auf die Beendigung der vorherigen untergeordneten Aufgaben zu warten. In diesem Modus werden alle untergeordneten Aufgaben gleichzeitig ausgeführt.
Siehe auch sequential und ParallelLimit.
const QtTaskTree::ExecutionMode QtTaskTree::parallelIdealThreadCountLimit
Ein praktisches globales Gruppenelement, das den parallelen Ausführungsmodus mit einer begrenzten Anzahl von gleichzeitig laufenden Aufgaben beschreibt. Die Begrenzung ist gleich der idealen Anzahl von Threads ohne den aufrufenden Thread.
Dies ist eine Abkürzung für:
Siehe auch parallel und ParallelLimit.
const QtTaskTree::ExecutionMode QtTaskTree::sequential
Ein praktisches globales Gruppenelement, das den sequenziellen Ausführungsmodus beschreibt.
Dies ist der Standardausführungsmodus des Gruppenelements.
Wenn eine Gruppe keinen Ausführungsmodus hat, läuft sie im sequenziellen Modus. Alle direkten untergeordneten Aufgaben einer Gruppe werden in einer Kette gestartet, so dass nach Beendigung einer Aufgabe die nächste gestartet wird. Auf diese Weise können Sie die Ergebnisse der vorherigen Aufgabe als Eingabe an die nächste Aufgabe weitergeben, bevor diese gestartet wird. Dieser Modus garantiert, dass die nächste Aufgabe erst nach Beendigung der vorherigen Aufgabe gestartet wird.
Siehe auch parallel und ParallelLimit.
const QtTaskTree::GroupItem QtTaskTree::stopOnError
Ein praktisches globales Gruppenelement, das die Workflow-Richtlinie StopOnError beschreibt.
Dies ist die Standard-Workflow-Richtlinie des Gruppenelements.
const QtTaskTree::GroupItem QtTaskTree::stopOnSuccess
Ein praktisches globales Gruppenelement, das die Workflow-Richtlinie StopOnSuccess beschreibt.
const QtTaskTree::GroupItem QtTaskTree::stopOnSuccessOrError
Ein praktisches globales Gruppenelement, das die Workflow-Richtlinie StopOnSuccessOrError beschreibt.
const QtTaskTree::ExecutableItem QtTaskTree::successItem
Ein praktisches globales ausführbares Element, das eine leere, erfolgreiche, synchrone Aufgabe enthält.
Dies ist in if-Anweisungen nützlich, um anzuzeigen, dass eine Verzweigung mit Erfolg endet:
const ExecutableItem conditionalTask = ...; const Group group { stopOnSuccess, If (conditionalTask) >> Then { ... } >> Else { successItem }, nextTask };
Wenn im obigen Beispiel conditionalTask mit einem Fehler endet, wird der Zweig Else gewählt, der sofort mit Erfolg endet. Dies führt dazu, dass nextTask übersprungen wird (aufgrund der stopOnSuccess Workflow-Richtlinie von group) und group mit Erfolg beendet wird.
Siehe auch errorItem.
Funktion Dokumentation
QtTaskTree::ExecutableItem QtTaskTree::barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier)
Liefert die Waiter-Aufgabe, die beendet wird, wenn die übergebene storedBarrier beendet ist.
Hinweis: Die übergebene Aufgabe storedBarrier muss im gleichen Rezept wie ein Geschwister-Element der zurückgegebenen Aufgabe oder in einem Vorgänger-Element Group platziert sein, andernfalls ist mit einem Absturz zu rechnen.
template <typename Signal> QtTaskTree::ObjectSignal<std::decay_t<Signal>> QtTaskTree::makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal)
Eine konventionelle Funktion zum Erstellen von ObjectSignal innerhalb der ObjectSignalGetter Funktion, die an ExecutableItem::withCancel() oder ExecutableItem::withAccept() übergeben wird. Übergeben Sie eine object und ihre signal, um eine Instanz von ObjectSignal struct zu erstellen.
Siehe auch ObjectSignal, ExecutableItem::withCancel(), und ExecutableItem::withAccept().
template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always)
Konstruiert ein Gruppenelement, das den "Group done handler" enthält. Standardmäßig wird handler immer dann aufgerufen, wenn die Gruppe beendet wird. Übergeben Sie einen anderen Wert als den Standardwert für das Argument callDone, wenn Sie möchten, dass der Handler nur bei einer erfolgreichen, fehlgeschlagenen oder abgebrochenen Ausführung aufgerufen wird. Abhängig von der Workflow-Richtlinie der Gruppe kann dieser Handler auch aufgerufen werden, wenn die laufende Gruppe abgebrochen wird (z. B. wenn das Element stopOnError verwendet wurde).
Das übergebene handler ist vom Typ std::function<DoneResult(DoneWith)>. Optional kann der Rückgabetyp DoneResult oder das Argument DoneWith weggelassen werden (d. h. der Rückgabetyp kann void sein). Weitere Informationen über einen möglichen Handler-Typ finden Sie unter GroupItem::GroupDoneHandler.
Wenn der handler aufgerufen wird, sind alle untergeordneten Aufgaben der Gruppe bereits abgeschlossen.
Wenn eine Gruppe Storage-Elemente enthält, wird handler aufgerufen, bevor die Storages zerstört werden, so dass handler noch ein letztes Lesen der Daten der aktiven Storages durchführen kann.
Siehe auch GroupItem::GroupDoneHandler und onGroupSetup().
template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupSetup(Handler &&handler)
Konstruiert ein Gruppenelement, das den Group Setup Handler enthält. Der handler wird immer dann aufgerufen, wenn die Gruppe startet.
Der übergebene handler ist entweder vom Typ std::function<SetupResult()> oder std::function<void()>. Weitere Informationen zu einem möglichen Handler-Typ finden Sie unter GroupItem::GroupSetupHandler.
Wenn der handler aufgerufen wird, läuft noch keine der untergeordneten Aufgaben der Gruppe.
Wenn eine Gruppe Storage-Elemente enthält, wird handler aufgerufen, nachdem die Storages erstellt wurden, so dass handler bereits einige erste Änderungen an den aktiven Storages vornehmen kann.
Siehe auch GroupItem::GroupSetupHandler und onGroupDone().
template <typename Signal> QtTaskTree::ExecutableItem QtTaskTree::signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal)
Liefert die Waiter-Aufgabe, die beendet wird, wenn die übergebene sender die signal ausgibt.
Hinweis: Die Verbindung zu den übergebenen sender und signal wird nicht hergestellt, wenn die zurückgegebene Aufgabe erstellt oder in ein Rezept eingefügt wird, sondern wenn die Aufgabe durch QTaskTree gestartet wird. Stellen Sie sicher, dass die übergebene sender jeden laufenden Aufgabenbaum, der die zurückgegebene Aufgabe enthält, überdauert. Wenn die signal vor dem Start der Aufgabe gesendet wurde, d. h. bevor die Verbindung hergestellt wurde, wird die Aufgabe beim ersten Senden der signal nach dem Start der Aufgabe beendet.
QtTaskTree::ExecutableItem QtTaskTree::timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error)
Erzeugt QTimeoutTask mit der Dauer timeout, wonach die Aufgabe mit result beendet wird.
Siehe auch QTimeoutTask.
QtTaskTree::GroupItem QtTaskTree::workflowPolicy(QtTaskTree::WorkflowPolicy policy)
Konstruiert das workflow policy Element einer Gruppe für ein gegebenes policy.
Der Einfachheit halber können stattdessen auch globale Elemente verwendet werden.
Siehe auch stopOnError, continueOnError, stopOnSuccess, continueOnSuccess, stopOnSuccessOrError, finishAllAndSuccess, finishAllAndError, und WorkflowPolicy.
© 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.