Auf dieser Seite

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)

Detaillierte Beschreibung

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.

KonstanteWertBeschreibung
QtTaskTree::CallDoneFlag::Never0Der done-Handler wird nie aufgerufen.
QtTaskTree::CallDoneFlag::OnSuccess1 << 0Der done-Handler wird nur nach erfolgreicher Ausführung aufgerufen, d.h. wenn DoneWith::Success.
QtTaskTree::CallDoneFlag::OnError1 << 1Der done-Handler wird nur nach einer fehlgeschlagenen Ausführung aufgerufen, d. h. wenn DoneWith::Error.
QtTaskTree::CallDoneFlag::OnCancel1 << 2Der done-Handler wird nur nach einer abgebrochenen Ausführung aufgerufen, d. h. wenn DoneWith::Cancel.
QtTaskTree::CallDoneFlag::AlwaysOnSuccess | OnError | OnCancelDer 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.

KonstanteWertBeschreibung
QtTaskTree::DoneResult::Success0Die Ausführung der Gruppe oder Aufgabe wird mit Erfolg beendet.
QtTaskTree::DoneResult::Error1Die 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.

KonstanteWertBeschreibung
QtTaskTree::DoneWith::Success0Die Ausführung der Gruppe oder Aufgabe wurde mit Erfolg beendet.
QtTaskTree::DoneWith::Error1Die Ausführung der Gruppe oder des Tasks wurde mit einem Fehler beendet.
QtTaskTree::DoneWith::Cancel2Die 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.

KonstanteWertBeschreibung
QtTaskTree::SetupResult::Continue0Voreinstellung. 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::StopWithSuccess1Die 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::StopWithError2Die 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.

KonstanteWertBeschreibung
QtTaskTree::WorkflowPolicy::StopOnError0Standardwert. 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::ContinueOnError1Entspricht 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::StopOnSuccess2Entspricht 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::ContinueOnSuccess3Entspricht 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::StopOnSuccessOrError4Entspricht 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::FinishAllAndSuccess5Entspricht 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::FinishAllAndError6Entspricht 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:

WorkflowPolicyFührt alle untergeordneten Aufgaben ausErgebnisErgebnis, wenn die Gruppe leer ist
StopOnErrorHält an, wenn eine untergeordnete Aufgabe mit einem Fehler endet und meldet einen FehlerEin Fehler, wenn mindestens eine untergeordnete Aufgabe fehlgeschlagen ist, ansonsten ErfolgErfolg
ContinueOnErrorJaFehler, wenn mindestens eine untergeordnete Aufgabe fehlgeschlagen ist, ansonsten ErfolgErfolg
StopOnSuccessHält an, wenn 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
StopOnSuccessOrErrorHält an, wenn eine untergeordnete Aufgabe beendet wurde und meldet das Ergebnis der untergeordneten AufgabeErfolg oder Fehler, je nach dem Ergebnis der beendeten untergeordneten AufgabeEin Fehler
FinishAllAndSuccessJaErfolgErfolg
FinishAllAndErrorJaEin Fehlerein 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:

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

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.