Auf dieser Seite

QtTaskTree Namespace

Der Namespace „QtTaskTree“ umfasst alle Klassen und globalen Funktionen des Moduls „TaskTree“. Mehr...

Header: #include <QtTaskTree>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
Seit: Qt 6.11
Status: Technologievorschau

Dieser Namespace befindet sich in der Technologievorschau und kann sich noch ändern.

Klassen

(technology preview) class Do
(technology preview) class Else
(technology preview) class ElseIf
(technology preview) class ExecutableItem
(technology preview) class ExecutionMode
(technology preview) class For
(technology preview) class Forever
(technology preview) class ForeverIterator
(technology preview) class Group
(technology preview) class GroupItem
(technology preview) class If
(technology preview) class Iterator
(technology preview) class ListIterator
(technology preview) struct ObjectSignal
(technology preview) class ParallelLimit
(technology preview) class QBarrier
(technology preview) class QCustomTask
(technology preview) class QDefaultTaskAdapter
(technology preview) class QMappedTaskTreeRunner
(technology preview) class QNetworkReplyWrapper
(technology preview) class QParallelTaskTreeRunner
(technology preview) class QProcessTaskDeleter
(technology preview) class QSequentialTaskTreeRunner
(technology preview) class QSingleTaskTreeRunner
(technology preview) class QStartedBarrier
(technology preview) class QSyncTask
(technology preview) class QTaskInterface
(technology preview) class QTaskTree
(technology preview) class QTcpSocketWrapper
(technology preview) class QThreadFunction
(technology preview) class QThreadFunctionBase
(technology preview) class RepeatIterator
(technology preview) class Storage
(technology preview) class Then
(technology preview) class UntilIterator
(technology preview) 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)

Ausführliche Beschreibung

Klassen

Klasse Do

Ein Körperelement, 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 Aufgabenelemente. Mehr...

Klasse ExecutionMode

Das Gruppenelement, das den Ausführungsmodus beschreibt. Mehr...

Klasse „For“

Ein „for“-Schleifenelement. Mehr...

Klasse „Forever“

Endlosschleife von Teilaufgaben. Mehr...

Klasse „ForeverIterator“

Unendlicher Iterator zur Verwendung innerhalb eines „For“-Elements. Mehr...

Klasse „Group“

„Group“ stellt das Grundelement für die Erstellung deklarativer Rezepte dar, die beschreiben, wie ein verschachtelter Baum asynchroner Aufgaben ausgeführt und verwaltet wird. Mehr...

Klasse „GroupItem“

„GroupItem“ stellt das Grundelement dar, das Teil eines 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 wird. Mehr...

Klasse „ObjectSignal“

Struktur zur Beschreibung einer Unterklasse v QObject s und ihres Signals. Mehr...

Klasse ParallelLimit

Der parallele Ausführungsmodus mit einer benutzerdefinierten Grenze. Mehr...

Klasse QBarrier

Eine asynchrone Aufgabe, die auf Anforderung beendet wird. Mehr...

Klasse QCustomTask

Eine Klassenvorlage zur Deklaration benutzerdefinierter Aufgabenelemente und zur Definition ihrer Setup- und Done-Handler. Mehr...

Klasse QDefaultTaskAdapter

Eine Klassenvorlage, die einen Standard-Task-Adapter bereitstellt, der in „ QCustomTask “ verwendet wird. Mehr...

Klasse QMappedTaskTreeRunner

Ein Ausführungscontroller für einen zugeordneten Aufgabenbaum mit einem vorgegebenen Schlüsseltyp. Mehr...

Klasse QNetworkReplyWrapper

Ein Wrapper um ` QNetworkReply ` und ` QNetworkAccessManager`. Mehr...

Klasse QParallelTaskTreeRunner

Ein Ausführungscontroller für parallele Aufgabenbäume. Mehr...

Klasse QProcessTaskDeleter

Ein benutzerdefinierter Löscher für ` QProcess`, der von ` QProcessTask` verwendet wird. Mehr...

Klasse QSequentialTaskTreeRunner

Ein sequenzieller Ausführungscontroller für Aufgabenbäume. Mehr...

Klasse QSingleTaskTreeRunner

Ein Ausführungscontroller für einen einzelnen Aufgabenbaum. Mehr...

Klasse QStartedBarrier

Ein gestarteter „ QBarrier “ mit einem vorgegebenen Limit. Mehr...

Klasse QSyncTask

Führt einen benutzerdefinierten Handler synchron zwischen anderen Aufgaben aus. Mehr...

Klasse QTaskInterface

QTaskInterface ist eine Hilfsklasse, die bei der Anpassung der Schnittstelle benutzerdefinierter Aufgaben verwendet wird. Mehr...

Klasse QTaskTree

Die Klasse QTaskTree führt den Baum asynchroner Aufgaben aus, die deklarativ 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 die Klassenvorlage „ QThreadFunction “. Mehr...

Klasse RepeatIterator

Der iterative Iterator, der innerhalb des „For“-Elements verwendet werden soll. Mehr...

Klasse „Storage“

Eine Klassenvorlage für den benutzerdefinierten Datenaustausch im Baum der laufenden Aufgaben. 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 Hauptteils bis zum Überschreiten einer Barriere verzögert. Mehr...

Typdokumentation

[alias] BarrierKickerGetter

Typalias für die Funktion, die ein ` QStoredBarrier ` entgegennimmt und ` ExecutableItem` zurückgibt, d. h. ` std::function<ExecutableItem(const QStoredBarrier &)>`, zur Verwendung innerhalb des Konstruktors von ` When `.

enum class QtTaskTree::CallDoneFlag
flags QtTaskTree::CallDone

Diese Enumeration ist ein optionales Argument für den Konstruktor des Elements „ onGroupDone()“ oder einer benutzerdefinierten Aufgabe. Sie gibt dem Aufgabenbaum vor, wann der „done“-Handler der Gruppe oder der Aufgabe aufgerufen werden soll.

KonstanteWertBeschreibung
QtTaskTree::CallDoneFlag::Never0Der „done“-Handler wird niemals aufgerufen.
QtTaskTree::CallDoneFlag::OnSuccess1 << 0Der „done“-Handler wird erst nach erfolgreicher Ausführung aufgerufen, d. h. wenn „ DoneWith::Success “ gilt.
QtTaskTree::CallDoneFlag::OnError1 << 1Der „done“-Handler wird erst nach fehlgeschlagener Ausführung aufgerufen, d. h. wenn „ DoneWith::Error “ gilt.
QtTaskTree::CallDoneFlag::OnCancel1 << 2Der „done“-Handler wird nur nach einer abgebrochenen Ausführung aufgerufen, d. h., wenn „ DoneWith::Cancel “ gilt.
QtTaskTree::CallDoneFlag::AlwaysOnSuccess | OnError | OnCancelDer „done“-Handler wird immer aufgerufen.

Der Typ „CallDone“ ist ein „typedef“ für „QFlags<CallDoneFlag>“. Er speichert eine OR-Kombination von „CallDoneFlag“-Werten.

enum class QtTaskTree::DoneResult

Diese Enumeration wird optional von der „done“-Handler-Funktion der Gruppe oder der 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 Aufgabenbaum abgeleitet und an die übergeordnete Gruppe gemeldet.

Wenn der „Done“-Handler „DoneResult“ zurückgibt, können Sie den endgültigen Rückgabewert innerhalb des Handlers anpassen.

Wird „DoneResult“ von der „done“-Handler-Funktion der Gruppe zurückgegeben, wird die Workflow-Richtlinie der Gruppe ignoriert.

Diese Enumeration wird auch innerhalb des Signals `TaskInterface::done()` verwendet und gibt an, ob die Aufgabe erfolgreich oder mit einem Fehler abgeschlossen wurde.

KonstanteWertBeschreibung
QtTaskTree::DoneResult::Success0Die Ausführung der Gruppe oder der Aufgabe endet erfolgreich.
QtTaskTree::DoneResult::Error1Die Ausführung der Gruppe oder der Aufgabe endet mit einem Fehler.

enum class QtTaskTree::DoneWith

Diese Enumeration ist ein optionales Argument für den „done“-Handler der Gruppe oder Aufgabe. Sie gibt an, ob die Gruppe oder Aufgabe erfolgreich oder mit einem Fehler abgeschlossen wurde oder ob sie abgebrochen wurde.

Sie wird außerdem als Argument innerhalb des Signals „ QTaskTree::done()“ verwendet und gibt das Endergebnis der Ausführung von „ QTaskTree “ an.

KonstanteWertBeschreibung
QtTaskTree::DoneWith::Success0Die Ausführung der Gruppe oder Aufgabe wurde erfolgreich abgeschlossen.
QtTaskTree::DoneWith::Error1Die Ausführung der Gruppe oder der Aufgabe endete mit einem Fehler.
QtTaskTree::DoneWith::Cancel2Die Ausführung der Gruppe oder der Aufgabe 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 untergeordneten Elemente abgebrochen werden. Das Anpassen des Endergebnisses des „done“-Handlers durch die Rückgabe von „ DoneResult “ aus dem Handler hat keine Auswirkung, wenn die Ausführung der Gruppe oder der Aufgabe abgebrochen wurde.

[alias] QtTaskTree::GroupItems

Typalias für QList<GroupItem>.

[alias] QBarrierTask

Typalias für die „ QCustomTask “ <QBarrier>, zur Verwendung in Rezepten.

[alias] QNetworkReplyWrapperTask

Typalias für die „ QCustomTask “ <QNetworkReplyWrapper>, zur Verwendung in Rezepten.

[alias] QProcessTask

Typalias für den Typ „ QCustomTask “ <QProcess> unter Verwendung von QProcessTaskDeleter, zur Verwendung in Rezepten.

[alias] QStoredBarrier

Typalias für den Typ „ QtTaskTree::Storage “ <QStartedBarrier>, zur Verwendung in Rezepten.

[alias] QTaskTreeTask

Typalias für die Klasse „ QCustomTask “ <QTaskTree>, zur Verwendung in Rezepten.

[alias] QTcpSocketWrapperTask

Typalias für das „ QCustomTask “ <QTcpSocketWrapper>, zur Verwendung in Rezepten.

[alias] template <typename ResultType> QThreadFunctionTask

Typalias für „ QCustomTask<QThreadFunction<ResultType>>“, wobei „ ResultType “ den Rückgabetyp der Thread-Funktion angibt, der innerhalb von Rezepten verwendet werden soll.

[alias] QTimeoutTask

Typalias für die Klasse „ QCustomTask “ <std::chrono::milliseconds>, zur Verwendung in Rezepten. Mit dem Parameter „ std::chrono::milliseconds “ wird die Zeitüberschreitungsdauer festgelegt. Die Standardzeitüberschreitung lautet „ std::chrono::milliseconds::zero() “, d. h., die „QTimeoutTask“ wird beendet, sobald die Steuerung zur laufenden Ereignisschleife zurückkehrt.

Anwendungsbeispiel:

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 Enumeration wird optional von der Setup-Handler-Funktion der Gruppe oder der Aufgabe zurückgegeben. Sie gibt dem laufenden Aufgabenbaum vor, wie nach Abschluss der Ausführung des Setup-Handlers weiter verfahren werden soll.

KonstanteWertBeschreibung
QtTaskTree::SetupResult::Continue0Standard. Die Ausführung der Gruppe oder Aufgabe wird normal fortgesetzt. Wenn der Setup-Handler einer Gruppe oder Aufgabe `void` zurückgibt, wird davon ausgegangen, dass er `Continue` zurückgegeben hat.
QtTaskTree::SetupResult::StopWithSuccess1Die Ausführung der Gruppe oder der Aufgabe wird sofort erfolgreich beendet. Wird dieser Wert vom Setup-Handler der Gruppe zurückgegeben, werden alle untergeordneten Aufgaben übersprungen, und der Handler „ onGroupDone()“ der Gruppe wird mit „ DoneWith::Success “ aufgerufen. Die Gruppe meldet ihrer übergeordneten Ebene den Erfolg. Die Workflow-Richtlinie der Gruppe wird ignoriert. Bei Rückgabe aus dem Setup-Handler der Aufgabe wird die Aufgabe nicht gestartet, ihr „done“-Handler wird nicht aufgerufen, und die Aufgabe meldet ihrem übergeordneten Element den Erfolg.
QtTaskTree::SetupResult::StopWithError2Die Ausführung der Gruppe oder der Aufgabe wird sofort mit einem Fehler abgebrochen. Bei Rückgabe aus dem Setup-Handler der Gruppe werden alle untergeordneten Aufgaben übersprungen, und der onGroupDone()-Handler der Gruppe wird mit DoneWith::Error aufgerufen. Die Gruppe meldet ihrem übergeordneten Element einen Fehler. Die Workflow-Richtlinie der Gruppe wird ignoriert. Bei Rückkehr aus dem Setup-Handler der Aufgabe wird die Aufgabe nicht gestartet, ihr Fehlerhandler wird nicht aufgerufen, und die Aufgabe meldet einen Fehler an ihr übergeordnetes Element.

[alias] QtTaskTree::TreeDoneHandler

Typalias für std::function<void(const QTaskTree &, QtTaskTree::DoneWith)>.

TreeDoneHandler ist ein optionales Argument der Funktionen von Task-Tree-Runner, die die Ausführung des Task-Trees planen. Die Funktion wird aufgerufen, wenn das Rezept des Task-Tree-Runners die Ausführung abgeschlossen 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: „ std::function<void(const QTaskTree &)> “, „ std::function<void(QtTaskTree::DoneWith)> “ oder „ std::function<void(void)> “.

[alias] QtTaskTree::TreeSetupHandler

Typalias für std::function<void(QTaskTree &)>.

TreeSetupHandler ist ein optionales Argument der Funktionen von Task-Tree-Runner, die die Ausführung des Task-Trees 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 Enumeration beschreibt das mögliche Verhalten des „Group“-Elements, wenn eine untergeordnete Aufgabe einer beliebigen Gruppe ihre Ausführung beendet. Sie wird auch verwendet, wenn die laufende „Group“ abgebrochen wird.

KonstanteWertBeschreibung
QtTaskTree::WorkflowPolicy::StopOnError0Standard. Entspricht dem globalen Element „ stopOnError “. Wenn eine untergeordnete Aufgabe mit einem Fehler endet, wird die Gruppe angehalten und endet mit einem Fehler. Wenn alle untergeordneten Aufgaben erfolgreich beendet wurden, endet die Gruppe erfolgreich. Ist eine Gruppe leer, endet sie erfolgreich.
QtTaskTree::WorkflowPolicy::ContinueOnError1Entspricht dem globalen Element „ continueOnError “. Ähnlich wie „ stopOnError “, jedoch wird im Falle eines Fehlers bei einem untergeordneten Element die Ausführung fortgesetzt, bis alle Aufgaben beendet sind, und die Gruppe meldet anschließend einen Fehler, selbst wenn einige andere Aufgaben in der Gruppe erfolgreich abgeschlossen wurden. Wenn alle untergeordneten Aufgaben erfolgreich abgeschlossen werden, wird die Gruppe erfolgreich beendet. Ist eine Gruppe leer, wird sie erfolgreich beendet.
QtTaskTree::WorkflowPolicy::StopOnSuccess2Entspricht dem globalen Element „ stopOnSuccess “. Wenn mindestens eine untergeordnete Aufgabe erfolgreich abgeschlossen wird, wird die Gruppe beendet und mit Erfolg abgeschlossen. Wenn alle untergeordneten Aufgaben mit einem Fehler abgeschlossen wurden, wird die Gruppe mit einem Fehler abgeschlossen. Ist eine Gruppe leer, wird sie mit einem Fehler abgeschlossen.
QtTaskTree::WorkflowPolicy::ContinueOnSuccess3Entspricht dem globalen Element „ continueOnSuccess “. Ähnlich wie bei „ stopOnSuccess “, jedoch wird die Ausführung, sobald eine untergeordnete Aufgabe erfolgreich abgeschlossen ist, fortgesetzt, bis alle Aufgaben beendet sind, und die Gruppe meldet anschließend einen Erfolg, selbst wenn einige andere Aufgaben in der Gruppe mit einem Fehler beendet wurden. Wenn alle untergeordneten Aufgaben mit einem Fehler beendet werden, wird die Gruppe mit einem Fehler beendet. Ist eine Gruppe leer, wird sie mit einem Fehler beendet.
QtTaskTree::WorkflowPolicy::StopOnSuccessOrError4Entspricht dem globalen Element „ stopOnSuccessOrError “. Die Gruppe startet so viele Aufgaben, wie möglich. Sobald eine Aufgabe beendet ist, stoppt die Gruppe und meldet das Ergebnis der Aufgabe. Nur im Parallelmodus sinnvoll. Im sequenziellen Modus wird nur die erste Aufgabe gestartet, und wenn diese beendet ist, endet auch die Gruppe, sodass die anderen Aufgaben immer übersprungen werden. Ist eine Gruppe leer, endet sie mit einem Fehler.
QtTaskTree::WorkflowPolicy::FinishAllAndSuccess5Entspricht dem globalen Element „ finishAllAndSuccess “. Die Gruppe führt alle Aufgaben aus und ignoriert deren Rückgabewerte. Wenn alle Aufgaben beendet sind, wird die Gruppe erfolgreich beendet. Ist eine Gruppe leer, wird sie erfolgreich beendet.
QtTaskTree::WorkflowPolicy::FinishAllAndError6Entspricht dem globalen Element „ finishAllAndError “. Die Gruppe führt alle Aufgaben aus und ignoriert deren Rückgabewerte. Wenn alle Aufgaben beendet sind, wird die Gruppe mit einem Fehler beendet. Ist eine Gruppe leer, wird sie mit einem Fehler beendet.

Immer wenn das Ergebnis einer untergeordneten Aufgabe dazu führt, dass die Gruppe angehalten wird, d. h. bei den Richtlinien „StopOnError“, „StopOnSuccess“ oder „StopOnSuccessOrError“, bricht die Gruppe die anderen laufenden untergeordneten Aufgaben ab (sofern vorhanden – beispielsweise im Parallelmodus) und überspringt die Ausführung von Aufgaben, die sie noch nicht gestartet hat (beispielsweise im sequenziellen Modus – jene, die nach der fehlgeschlagenen Aufgabe platziert sind). Sowohl das Abbrechen als auch das Überspringen von untergeordneten Aufgaben kann auftreten, wenn „ ParallelLimit “ verwendet wird.

Die folgende Tabelle fasst die Unterschiede zwischen den verschiedenen Workflow-Richtlinien zusammen:

WorkflowPolicyFührt alle untergeordneten Aufgaben ausErgebnisErgebnis, wenn die Gruppe leer ist
StopOnErrorHält an, wenn eine untergeordnete Aufgabe mit einem Fehler beendet wurde, und meldet einen FehlerEin Fehler, wenn mindestens eine untergeordnete Aufgabe fehlgeschlagen ist, andernfalls ErfolgErfolg
ContinueOnErrorJaEin Fehler, wenn mindestens eine untergeordnete Aufgabe fehlgeschlagen ist, andernfalls ErfolgErfolg
BeiErfolgStoppenHält an, sobald eine untergeordnete Aufgabe erfolgreich abgeschlossen wurde, und meldet ErfolgErfolg, wenn mindestens eine untergeordnete Aufgabe erfolgreich war; andernfalls ein FehlerEin Fehler
ContinueOnSuccessJaErfolg, wenn mindestens eine untergeordnete Aufgabe erfolgreich war, andernfalls ein FehlerEin Fehler
StopOnSuccessOrErrorStoppt, sobald eine untergeordnete Aufgabe beendet ist, und meldet das Ergebnis der untergeordneten AufgabeErfolg oder ein Fehler, je nach Ergebnis der abgeschlossenen untergeordneten AufgabeEin Fehler
FinishAllAndSuccessJaErfolgErfolg
FinishAllAndErrorJaEin FehlerEin Fehler

Wenn ein untergeordnetes Element einer Gruppe ebenfalls eine Gruppe ist, führt die untergeordnete Gruppe ihre Aufgaben gemäß ihrer eigenen Workflow-Richtlinie aus. Wenn eine übergeordnete Gruppe die laufende untergeordnete Gruppe aufgrund ihrer eigenen Workflow-Richtlinie stoppt – das heißt, wenn für die übergeordnete Gruppe die Richtlinie „StopOnError“, „StopOnSuccess“ oder „StopOnSuccessOrError“ verwendet wurde –, wird das Ergebnis der untergeordneten Gruppe gemäß der Spalte „Ergebnis“ und der Zeile zur Workflow-Richtlinie der untergeordneten Gruppe in der obigen Tabelle gemeldet.

Variablendokumentation

const QtTaskTree::GroupItem QtTaskTree::continueOnError

Ein praktisches Element einer globalen Gruppe, das die Arbeitsablaufrichtlinie „ ContinueOnError “ beschreibt.

const QtTaskTree::GroupItem QtTaskTree::continueOnSuccess

Ein praktisches Element einer globalen Gruppe, 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 anzugeben, dass eine Verzweigung mit einem Fehler endet:

const ExecutableItem conditionalTask = ...;

Group group {
    stopOnError,
    If (conditionalTask) >> Then {
        ...
    } >> Else {
        errorItem
    },
    nextTask
};

Im obigen Beispiel wird, falls die Aufgabe „ conditionalTask “ mit einem Fehler endet, der Zweig „ Else “ gewählt, der sofort mit einem Fehler endet. Dies führt dazu, dass die Aufgabe „ nextTask “ übersprungen wird (aufgrund der Workflow-Richtlinie „ stopOnError “ des group) und die Aufgabe „ group “ mit einem Fehler endet.

Siehe auch successItem.

const QtTaskTree::GroupItem QtTaskTree::finishAllAndError

Ein praktisches Element einer globalen Gruppe, das die Workflow-Richtlinie „ FinishAllAndError “ beschreibt.

const QtTaskTree::GroupItem QtTaskTree::finishAllAndSuccess

Ein praktisches Element einer globalen Gruppe, das die Workflow-Richtlinie „ FinishAllAndSuccess “ beschreibt.

const QtTaskTree::GroupItem QtTaskTree::nullItem

Ein praktisches Element einer globalen Gruppe, das ein No-Op-Element kennzeichnet.

Dies ist in bedingten Ausdrücken nützlich, um das Fehlen 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 Element einer globalen Gruppe, das den parallelen Ausführungsmodus beschreibt.

Alle direkten untergeordneten Aufgaben einer Gruppe werden nach dem Start der Gruppe gestartet, ohne auf den Abschluss der vorherigen untergeordneten Aufgaben zu warten. In diesem Modus laufen alle untergeordneten Aufgaben gleichzeitig.

Siehe auch sequential und ParallelLimit.

const QtTaskTree::ExecutionMode QtTaskTree::parallelIdealThreadCountLimit

Ein praktisches Element einer globalen Gruppe, das den parallelen Ausführungsmodus mit einer begrenzten Anzahl gleichzeitig ausgeführter Aufgaben beschreibt. Die Obergrenze entspricht der idealen Anzahl von Threads ohne den aufrufenden Thread.

Dies entspricht:

ParallelLimit(qMax(QThread::idealThreadCount() - 1, 1))

Siehe auch parallel und ParallelLimit.

const QtTaskTree::ExecutionMode QtTaskTree::sequential

Ein praktisches Element der globalen Gruppe, das den sequenziellen Ausführungsmodus beschreibt.

Dies ist der Standardausführungsmodus des „Group“-Elements.

Wenn für eine Gruppe kein Ausführungsmodus festgelegt ist, wird sie im sequenziellen Modus ausgeführt. Alle direkten untergeordneten Aufgaben einer Gruppe werden in einer Kette gestartet, sodass nach Beendigung einer Aufgabe die nächste startet. Auf diese Weise können Sie die Ergebnisse der vorherigen Aufgabe als Eingabe an die nächste Aufgabe übergeben, bevor diese startet. Dieser Modus gewährleistet, dass die nächste Aufgabe erst gestartet wird, nachdem die vorherige Aufgabe beendet ist.

Siehe auch parallel und ParallelLimit.

const QtTaskTree::GroupItem QtTaskTree::stopOnError

Ein praktisches Element der globalen Gruppe, das die Workflow-Richtlinie „ StopOnError “ beschreibt.

Dies ist die Standard-Workflow-Richtlinie des Gruppenelements.

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccess

Ein praktisches Element einer globalen Gruppe, das die Workflow-Richtlinie „ StopOnSuccess “ beschreibt.

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccessOrError

Ein praktisches Element einer globalen Gruppe, das die Workflow-Richtlinie „ StopOnSuccessOrError “ beschreibt.

const QtTaskTree::ExecutableItem QtTaskTree::successItem

Ein praktisches, global verfügbares ausführbares Element, das eine leere, erfolgreich ausgeführte, synchrone Aufgabe enthält.

Dies ist in if-Anweisungen nützlich, um anzugeben, dass eine Verzweigung erfolgreich endet:

const ExecutableItem conditionalTask = ...;

const Group group {
    stopOnSuccess,
    If (conditionalTask) >> Then {
        ...
    } >> Else {
        successItem
    },
    nextTask
};

Im obigen Beispiel wird, falls die Aufgabe „ conditionalTask “ mit einem Fehler endet, der Zweig „ Else “ gewählt, der sofort erfolgreich abgeschlossen wird. Dies führt dazu, dass die Aufgabe „ nextTask “ übersprungen wird (aufgrund der Workflow-Richtlinie „ stopOnSuccess “ des group) und die Aufgabe „ group “ erfolgreich abgeschlossen wird.

Siehe auch errorItem.

Funktionsdokumentation

QtTaskTree::ExecutableItem QtTaskTree::barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier)

Gibt die „Awaiter“-Aufgabe zurück, die beendet wird, sobald die übergebene „ storedBarrier “ beendet ist.

Hinweis: Das übergebene ` storedBarrier ` muss im selben Rezept als gleichrangiges Element neben der zurückgegebenen Aufgabe oder in einem übergeordneten ` Group` platziert werden; andernfalls kann es zu einem Absturz kommen.

template <typename Signal> QtTaskTree::ObjectSignal<std::decay_t<Signal>> QtTaskTree::makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal)

Eine praktische Funktion zum Erstellen von „ ObjectSignal “ innerhalb der Funktion „ ObjectSignalGetter “, die an „ ExecutableItem::withCancel()“ oder „ ExecutableItem::withAccept()“ übergeben wird. Übergeben Sie ein „ object “ und dessen „ signal “, um eine Instanz der Struktur „ ObjectSignal “ zu erstellen.

Siehe auch „ ObjectSignal“ , „ ExecutableItem::withCancel()“ und „ ExecutableItem::withAccept()“.

template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always)

Erstellt ein Gruppenelement, das den „Group Done“-Handler enthält. Standardmäßig wird der „ handler “ aufgerufen, sobald die Gruppe abgeschlossen ist. Übergeben Sie einen vom Standard abweichenden Wert für das Argument „ callDone “, wenn der Handler nur bei erfolgreicher, fehlgeschlagener oder abgebrochener Ausführung aufgerufen werden soll. Je nach Workflow-Richtlinie der Gruppe kann dieser Handler auch aufgerufen werden, wenn die laufende Gruppe abgebrochen wird (z. B. wenn das Element „ stopOnError “ verwendet wurde).

Der übergebene ` handler ` ist vom Typ ` std::function<DoneResult(DoneWith)> `. Optional kann entweder der Rückgabetyp ` DoneResult ` oder der Argumenttyp ` DoneWith ` weggelassen werden (d. h., der Rückgabetyp kann ` void` sein). Weitere Informationen zu möglichen Handler-Typen finden Sie unter GroupItem::GroupDoneHandler.

Wenn der „ handler “ aufgerufen wird, sind alle untergeordneten Aufgaben der Gruppe bereits abgeschlossen.

Enthält eine Gruppe „Storage“-Elemente, wird die Funktion „ handler “ aufgerufen, bevor die Speicher destrukturiert werden, sodass die Funktion „ handler “ noch ein letztes Mal die Daten der aktiven Speicher auslesen kann.

Siehe auch „ GroupItem::GroupDoneHandler “ und „ onGroupSetup()“.

template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupSetup(Handler &&handler)

Erstellt ein Gruppenelement, das den Handler für die Gruppeneinrichtung enthält. Der „ handler “ wird bei jedem Start der Gruppe aufgerufen.

Der übergebene „ handler “ ist entweder vom Typ „ std::function<SetupResult()> “ oder „ std::function<void()> “. Weitere Informationen zu den möglichen Handler-Typen finden Sie unter GroupItem::GroupSetupHandler.

Wenn die Funktion „ handler “ aufgerufen wird, läuft noch keine der untergeordneten Aufgaben der Gruppe.

Enthält eine Gruppe „Storage“-Elemente, wird die Methode „ handler “ nach dem Aufbau der Speicher aufgerufen, sodass die Methode „ handler “ möglicherweise bereits einige anfängliche Änderungen an den aktiven Speichern vorgenommen hat.

Siehe auch „ GroupItem::GroupSetupHandler “ und „ onGroupDone “ ().

template <typename Signal> QtTaskTree::ExecutableItem QtTaskTree::signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal)

Gibt die Awaiter-Aufgabe zurück, die beendet wird, sobald die übergebene ` sender ` die ` signal` auslöst.

Hinweis: Die Verbindung zu den übergebenen „ sender “ und „ signal “ wird nicht bei der Erstellung der zurückgegebenen Aufgabe oder beim Einfügen in ein Rezept hergestellt, sondern erst, wenn die Aufgabe durch „ QTaskTree “ gestartet wird. Stellen Sie sicher, dass die übergebene „ sender “ länger besteht als jeder laufende Aufgabenbaum, der die zurückgegebene Aufgabe enthält. Wurde das „ signal “ vor dem Start der Aufgabe ausgegeben, d. h. bevor die Verbindung hergestellt wurde, wird die Aufgabe bei der ersten Ausgabe des „ signal “ nach dem Start der Aufgabe beendet.

QtTaskTree::ExecutableItem QtTaskTree::timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error)

Erstellt „ QTimeoutTask “ mit der Dauer „ timeout “, woraufhin die Aufgabe mit „ result “ abgeschlossen wird.

Siehe auch „ QTimeoutTask “.

QtTaskTree::GroupItem QtTaskTree::workflowPolicy(QtTaskTree::WorkflowPolicy policy)

Erstellt das Element „ workflow policy “ einer Gruppe für eine angegebene „ policy “.

Der Einfachheit halber können stattdessen 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.