このページでは

QtTaskTree Namespace

QtTaskTree 名前空間には、TaskTree モジュールのすべてのクラスとグローバル関数が含まれています。詳細...

ヘッダー #include <QtTaskTree>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
以来:Qt 6.11

クラス

(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

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 }

変数

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

関数

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)

詳細説明

クラス

クラスDo

For や When コンストラクトで使用されるボディ要素。詳細...

クラスElse

条件式で使用される "else" 要素。詳細

クラスElseIf

条件式で使用される "else if" 要素です。詳細はこちら

クラスExecutableItem

実行可能なタスクアイテムの基底クラスです。詳細はこちら

クラスExecutionMode

実行モードを記述するグループ要素です。詳細はこちら

クラスFor

forループの要素です。詳細はこちら

クラスForever

サブタスクの無限ループ詳細はこちら

クラスForeverIterator

For要素の内部で使用される無限イテレータです。詳細はこちら

クラスGroup

非同期タスクのネストしたツリーをどのように実行し、処理するかを記述する宣言的なレシピを構成するための基本的な要素を表します。詳細

クラスGroupItem

GroupItem は、Group の一部となる基本要素を表します。詳細

クラスIf

条件式で使用される "if "要素。詳細はこちら

クラスIterator

For 要素の内部でイテレータとして使用される基本クラスです。詳細はこちら

クラスListIterator

For 要素の内部で使用するリスト・イテレータです。詳細はこちら

クラスObjectSignal

QObject のサブクラスとそのシグナルを記述する構造体。詳細

クラスParallelLimit

カスタムリミットを持つ並列実行モード。詳細

クラスQBarrier

オンデマンドで終了する非同期タスク。詳細はこちら

クラスQCustomTask

カスタムタスクアイテムを宣言し、そのセットアップと完了ハンドラを定義するためのクラステンプレート。詳細

クラスQDefaultTaskAdapter

QCustomTask で使われるデフォルトのタスクアダプタを提供するクラステンプレート。詳細...

クラスQMappedTaskTreeRunner

与えられた Key タイプを持つマップされたタスクツリー実行コントローラです。詳細...

クラスQNetworkReplyWrapper

QNetworkReplyQNetworkAccessManager のラッパーです。詳細

クラスQParallelTaskTreeRunner

並列タスクツリー実行コントローラです。詳細

クラスQProcessTaskDeleter

QProcessTask で使用されるQProcess 用のカスタムデレッタです。詳細...

クラスQSequentialTaskTreeRunner

逐次タスクツリー実行コントローラです。詳細

クラスQSingleTaskTreeRunner

単一タスクツリー実行コントローラです。詳細はこちら

クラスQStartedBarrier

指定された制限で開始されたQBarrier.詳細

クラスQSyncTask

他のタスクの間でカスタムハンドラを同期実行します。詳細

クラスQTaskInterface

QTaskInterface はカスタムタスクのインターフェイスを適応する際に使用するヘルパークラスです。詳細はこちら

クラスQTaskTree

QTaskTree クラスは宣言的な方法で定義された非同期タスクのツリーを実行します。詳細

クラスQTcpSocketWrapper

QTcpSocket のラッパーです。詳細はこちら

クラスQThreadFunction

QtConcurrent::run() による別スレッドでの関数の実行を制御するクラステンプレートです。詳細

クラスQThreadFunctionBase

QThreadFunction クラステンプレートの基底クラスです。詳細はこちら

クラスRepeatIterator

For 要素の内部で使用される反復イテレータです。詳細

クラスStorage

実行中のタスクツリーでカスタムデータ交換を行うためのクラステンプレート。詳細

クラスThen

条件式で使われる "then "要素。詳細

クラスUntilIterator

For 要素の内部で使用される条件式イテレータ。詳細はこちら

クラスWhen

バリアが進むまで本体の実行を遅延させる要素。詳細

型のドキュメント

[alias] BarrierKickerGetter

QStoredBarrier を受け取り、ExecutableItem を返す関数、すなわちstd::function<ExecutableItem(const QStoredBarrier &)> の型エイリアス。When コンストラクタ内部で使用します。

enum class QtTaskTree::CallDoneFlag
flags QtTaskTree::CallDone

この enum は、onGroupDone() 要素またはカスタムタスクのコンストラクタのオプション引数です。これは、グループまたはタスクの done ハンドラがいつ呼び出されるべきかをタスクツリーに指示します。

定数説明
QtTaskTree::CallDoneFlag::Never0done ハンドラは起動されない。
QtTaskTree::CallDoneFlag::OnSuccess1 << 0done ハンドラは実行に成功した後、つまりDoneWith::Success の時のみ起動されます。
QtTaskTree::CallDoneFlag::OnError1 << 1done ハンドラは、実行に失敗した後、つまりDoneWith::Error のときにのみ呼び出される。
QtTaskTree::CallDoneFlag::OnCancel1 << 2doneハンドラは、実行がキャンセルされた後にのみ、つまりDoneWith::Cancel のときにのみ呼び出される。
QtTaskTree::CallDoneFlag::AlwaysOnSuccess | OnError | OnCanceldone ハンドラは常に呼び出される。

CallDone 型はQFlags<CallDoneFlag> の typedef です。CallDoneFlag 値の OR の組み合わせを格納します。

enum class QtTaskTree::DoneResult

この列挙型は、グループまたはタスクの done ハンドラ関数からオプションで返される。done ハンドラーが値を返さない場合、つまり戻り値の型がvoid の場合、その最終的な戻り値は実行中のタスクツリーによって自動的に推測され、親グループに報告されます。

done ハンドラーが DoneResult を返す場合、ハンドラー内部で最終的な戻り値を微調整することができます。

グループの done ハンドラから DoneResult が返された場合、グループのワークフローポリシーは無視される。

この列挙型は、TaskInterface::done() シグナル内部でも使用され、タスクが成功で終了したかエラーで終了したかを示します。

定数説明
QtTaskTree::DoneResult::Success0グループまたはタスクの実行が成功で終了した。
QtTaskTree::DoneResult::Error1グループまたはタスクの実行はエラーで終了します。

enum class QtTaskTree::DoneWith

この列挙型はグループまたはタスクの done ハンドラのオプション引数である。グループやタスクが成功で終了したのか、エラーで終了したのか、キャンセルされたのかを示します。

また、QTaskTree の実行の最終結果を示すQTaskTree::done() シグナル内の引数としても使用されます。

定数説明
QtTaskTree::DoneWith::Success0グループまたはタスクの実行が成功で終了した。
QtTaskTree::DoneWith::Error1グループまたはタスクの実行がエラーで終了した。
QtTaskTree::DoneWith::Cancel2グループまたはタスクの実行がキャンセルされた。これは、ユーザが実行中のタスクツリーに対してQTaskTree::cancel() をコールした場合や、グループのワークフローポリシーによって実行中の子タスクの一部がキャンセルされた場合に発生します。グループまたはタスクの実行がキャンセルされた場合、ハンドラからDoneResult を返すことで done ハンドラの最終結果を調整することはできません。

[alias] QtTaskTree::GroupItems

QList<GroupItem>のエイリアスを入力する。

[alias] QBarrierTask

レシピの中で使われる、QCustomTask<QBarrier> のエイリアスをタイプする。

[alias] QNetworkReplyWrapperTask

レシピの中で使われる、QCustomTask<QNetworkReplyWrapper> のエイリアスをタイプする。

[alias] QProcessTask

QProcessTaskDeleter を使って、QCustomTask<QProcess> のエイリアスを作り、レシピの中で使う。

[alias] QStoredBarrier

レシピの中で使われる、QtTaskTree::Storage<QStartedBarrier> のエイリアスをタイプする。

[alias] QTaskTreeTask

レシピの中で使われる、QCustomTask<QTaskTree> のエイリアスをタイプする。

[alias] QTcpSocketWrapperTask

レシピの中で使われる、QCustomTask<QTcpSocketWrapper> のエイリアスをタイプする。

[alias] template <typename ResultType> QThreadFunctionTask

QCustomTask<QThreadFunction<ResultType>> のタイプエイリアスで、レシピの内部で使用されます。

[alias] QTimeoutTask

QCustomTask<std::chrono::milliseconds> のエイリアスをタイプし、レシピ内で使用する。std::chrono::milliseconds は、タイムアウト時間を設定するために使用されます。デフォルトのタイムアウトはstd::chrono::milliseconds::zero() 、つまり、コントロールが実行中のイベントループに戻るとすぐにQTimeoutTaskは終了します。

使用例:

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)
};

timeoutTask()も参照してください

enum class QtTaskTree::SetupResult

この列挙型はグループまたはタスクのセットアップハンドラ関数からオプションで返される。これは、セットアップハンドラの実行が終了した後、実行中のタスクツリーにどのように進むかを指示します。

定数説明
QtTaskTree::SetupResult::Continue0デフォルトグループまたはタスクの実行は正常に続行されます。グループまたはタスクのセットアップハンドラがvoidを返した場合、Continueを返したとみなされます。
QtTaskTree::SetupResult::StopWithSuccess1グループまたはタスクの実行は、成功すると直ちに停止します。グループのセットアップ・ハンドラから返されると、すべての子タスクがスキップされ、グループのonGroupDone() ハンドラがDoneWith::Success で呼び出されます。グループは親に成功を報告する。グループのワークフロー・ポリシーは無視される。タスクのセットアップハンドラから戻された時、タスクは開始されず、その done ハンドラは起動されず、タスクはその親に成功を報告する。
QtTaskTree::SetupResult::StopWithError2グループまたはタスクの実行はエラーで直ちに停止する。グループのセットアップ・ハンドラから返されると、すべての子タスクがスキップされ、グループのonGroupDone() ハンドラがDoneWith::Error で呼び出されます。グループは親にエラーを報告する。グループのワークフロー・ポリシーは無視される。タスクのセットアップハンドラから戻されると、タスクは開始されず、エラーハンドラは起動されず、タスクは親にエラーを報告する。

[alias] QtTaskTree::TreeDoneHandler

std::function<void(constQTaskTree &,QtTaskTree::DoneWith)>の型エイリアス。

TreeDoneHandler はタスクツリーの実行をスケジューリングするタスクツリーランナーの関数のオプション引数です。この関数はタスクツリーランナーのレシピが実行を終了した時に呼び出されます。QTaskTree とレシピの結果へのアクセスは渡された引数を介して行われます。

タスクツリーランナーは、std::function<void(const QTaskTree &)>std::function<void(QtTaskTree::DoneWith)>std::function<void(void)> という短縮形のハンドラも受け付けます。

[alias] QtTaskTree::TreeSetupHandler

std::function<void(QTaskTree &)> の型エイリアス。

TreeSetupHandler はタスクツリーの実行をスケジューリングするタスクツリーランナーの関数のオプション引数である。この関数はタスクツリーランナーがレシピを実行するときに呼び出されます。QTaskTree へのアクセスは渡された引数を介して行われる。

タスクツリーランナーはstd::function<void(void)> という短縮形のハンドラも受け付けます。

enum class QtTaskTree::WorkflowPolicy

この列挙型は、グループの子タスクが実行を終了したときのGroup要素の動作を記述します。また、実行中の Group がキャンセルされた場合にも使用されます。

定数説明
QtTaskTree::WorkflowPolicy::StopOnError0デフォルト。stopOnError グローバル要素に対応します。いずれかの子タスクがエラーで終了した場合、グループは停止し、エラーで終了します。すべての子タスクが成功で終了した場合、グループは成功で終了します。グループが空の場合は、成功で終了します。
QtTaskTree::WorkflowPolicy::ContinueOnError1continueOnError グローバル要素に対応する。stopOnError と似ていますが、子タスクがエラーで終了した場合、すべてのタスクが終了するまで実行は続行され、グループ内の他のタスクが成功で終了した場合でも、グループは終了後にエラーを報告します。すべての子タスクが成功裏に終了すると、グループは成功裏に終了する。グループが空の場合は、成功で終了する。
QtTaskTree::WorkflowPolicy::StopOnSuccess2stopOnSuccess グローバル要素に対応します。いずれかの子タスクが成功で終了すると、グループは停止し、成功で終了します。すべての子タスクがエラーで終了した場合、グループはエラーで終了します。グループが空の場合、エラーで終了します。
QtTaskTree::WorkflowPolicy::ContinueOnSuccess3continueOnSuccess グローバル要素に対応する。stopOnSuccess と似ていますが、子タスクが 1 つでも成功で終了した場合、すべてのタスクが終了するまで実行が続行され、グループ内の他のタスクがエラーで終了した場合でも、その後グループは成功を報告します。すべての子タスクがエラーで終了した場合、グループはエラーで終了する。グループが空の場合は、エラーで終了する。
QtTaskTree::WorkflowPolicy::StopOnSuccessOrError4stopOnSuccessOrError グローバル要素に対応します。グループは可能な限り多くのタスクを開始する。タスクが終了すると、グループは停止し、タスクの結果を報告する。並列モードでのみ有用。逐次モードでは、最初のタスクだけが開始され、終了するとグループも終了するので、他のタスクは常にスキップされる。グループが空の場合、エラーで終了する。
QtTaskTree::WorkflowPolicy::FinishAllAndSuccess5finishAllAndSuccess グローバル要素に対応する。グループはすべてのタスクを実行し、その戻り結果は無視する。すべてのタスクが終了すると、グループは成功で終了します。グループが空の場合、成功で終了します。
QtTaskTree::WorkflowPolicy::FinishAllAndError6finishAllAndError グローバル要素に対応します。グループはすべてのタスクを実行し、そのリターン結果は無視する。すべてのタスクが終了すると、グループはエラーで終了します。グループが空の場合、エラーで終了する。

子タスクの結果によってグループが停止する場合(StopOnError、StopOnSuccess、StopOnSuccessOrError ポリシーの場合)、グループは実行中の他の子タスクをキャンセルし(並列モードの場合など)、まだ開始していないタスクの実行をスキップします(逐次モードの場合など、失敗したタスクの後にあるタスク)。子タスクのキャンセルとスキップは、ParallelLimit

以下の表は、様々なワークフロー ポリシーの違いをまとめたものです:

ワークフロー ポリシーすべての子タスクを実行結果グループが空の場合の結果
StopOnError子タスクがエラーで終了した場合に停止し、エラーを報告する少なくとも1つの子タスクが失敗するとエラー、そうでなければ成功成功
ContinueOnErrorはい子タスクが1つでも失敗するとエラー、そうでなければ成功成功
StopOnSuccess子タスクが成功で終了すると停止し、成功を報告する少なくとも1つの子タスクが成功すると成功、そうでなければエラーエラー
ContinueOnSuccess成功少なくとも1つの子タスクが成功したら成功、そうでなければエラーエラー
StopOnSuccessOrErrorいずれかの子タスクが終了したときに停止し、子タスクの結果を報告する終了した子タスクの結果に応じて、成功またはエラーエラー
終了AllAndSuccess成功成功成功
すべて終了とエラーはいエラーエラー

グループの子もグループである場合、子グループは自身のワークフローポリシーに 従ってタスクを実行する。親グループのワークフロー ポリシーにより、親グループが実行中の子グループを停止した場合、つまり、StopOnError、StopOnSuccess、または StopOnSuccessOrError ポリシーが親に使用された場合、子グループの結果は、上の表のResult列と子グループのワークフロー ポリシー行に従って報告されます。

変数ドキュメント

const QtTaskTree::GroupItem QtTaskTree::continueOnError

ContinueOnError ワークフロー ポリシーを記述する便利なグローバル グループの要素。

const QtTaskTree::GroupItem QtTaskTree::continueOnSuccess

ContinueOnSuccess ワークフロー ポリシーを記述する便利なグローバル グループの要素。

const QtTaskTree::ExecutableItem QtTaskTree::errorItem

空のエラー同期タスクを含む便利なグローバル実行可能要素。

これはif文で、エラーで終了する分岐を示すのに便利である:

const ExecutableItem conditionalTask = ...;

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

上の例では、conditionalTask がエラーで終了すると、Else ブランチが選択され、すぐにエラーで終了する。これにより、nextTask はスキップされ(groupstopOnError ワークフロー・ポリシーのため)、group はエラーで終了します。

successItemも参照のこと

const QtTaskTree::GroupItem QtTaskTree::finishAllAndError

FinishAllAndError ワークフロー ポリシーを記述する便利なグローバル グループの要素。

const QtTaskTree::GroupItem QtTaskTree::finishAllAndSuccess

FinishAllAndSuccess ワークフロー ポリシーを記述する便利なグローバル グループの要素。

const QtTaskTree::GroupItem QtTaskTree::nullItem

省略できない項目を示す便利なグローバルグループの要素。

これは条件式で、省略可能な要素がないことを示すのに便利です:

const ExecutableItem task = ...;
const std::optional<ExecutableItem> optionalTask = ...;

Group group {
    task,
    optionalTask ? *optionalTask : nullItem
};

const QtTaskTree::ExecutionMode QtTaskTree::parallel

並列実行モードを記述する便利なグローバルグループの要素。

グループの全ての直接の子タスクは、グループが開始された後、前の子タスクの終了を待たずに開始される。このモードでは、すべての子タスクが同時に実行される。

sequentialParallelLimitも参照のこと

const QtTaskTree::ExecutionMode QtTaskTree::parallelIdealThreadCountLimit

同時に実行されるタスクの数に制限がある並列実行モードを記述する便利なグローバルグループの要素。制限は、呼び出しスレッドを除いた理想的なスレッド数に等しい。

へのショートカットです:

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

parallel およびParallelLimitも参照のこと

const QtTaskTree::ExecutionMode QtTaskTree::sequential

逐次実行モードを記述する便利なグローバルグループの要素。

これはGroup要素のデフォルトの実行モードです。

グループに実行モードがない場合は、逐次実行モードで実行されます。グループの直接の子タスクはすべて連鎖的に開始され、1つのタスクが終了すると次のタスクが開始されます。これにより、次のタスクが開始する前に、前のタスクの結果を入力として渡すことができる。このモードでは、前のタスクが終了した後にのみ次のタスクが開始されることが保証される。

parallel およびParallelLimitも参照の こと。

const QtTaskTree::GroupItem QtTaskTree::stopOnError

StopOnError ワークフローポリシーを記述する、便利なグローバルグループの要素。

これは、Group 要素のデフォルトのワークフロー ポリシーです。

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccess

StopOnSuccess ワークフロー ポリシーを記述する便利なグローバル グループの要素。

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccessOrError

StopOnSuccessOrError ワークフロー ポリシーを記述する便利なグローバル グループの要素。

const QtTaskTree::ExecutableItem QtTaskTree::successItem

空の、成功した同期タスクを含む便利なグローバル実行可能要素。

これはif文で、分岐が成功で終わることを示すのに便利である:

const ExecutableItem conditionalTask = ...;

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

上記の例では、conditionalTask がエラーで終了した場合、Else ブランチが選択され、すぐに成功で終了します。これにより、nextTask はスキップされ(groupstopOnSuccess ワークフロー・ポリシーのため)、group は成功で終了します。

errorItemも参照のこと

関数ドキュメント

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

渡されたstoredBarrier が終了した時に終了する待ちタスクを返します。

注意: 渡されたstoredBarrier は、返されたタスクの兄弟アイテムとして同じレシピに配置されるか、先祖Group に配置される必要があります。

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

ExecutableItem::withCancel() またはExecutableItem::withAccept() に渡されたObjectSignalGetter 関数の内部でObjectSignal を作成するための便利な関数。ObjectSignal 構造体のインスタンスを作成するには、object とそのsignal を渡します。

ObjectSignalExecutableItem::withCancel()、ExecutableItem::withAccept()も参照

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

グループ完了ハンドラを保持するグループのエレメントを構築します。デフォルトでは、グループが終了するたびにhandler が呼び出されます。実行が成功、失敗、またはキャンセルされた場合にのみハンドラを呼び出したい場合は、引数callDone にデフォルト以外の値を渡します。グループのワークフロー ポリシーによっては、実行中のグループがキャンセルされたときにもこのハンドラが呼び出される場合があります(stopOnError 要素が使用された場合など)。

渡されるhandlerstd::function<DoneResult(DoneWith)> 型である。オプションとして、戻り値DoneResult 型または引数DoneWith 型のそれぞれを省略することができる(つまり、その戻り値型はvoid )。可能なハンドラ型の詳細については、GroupItem::GroupDoneHandler を参照のこと。

handler が呼び出されたとき、グループのすべての子タスクはすでに終了している。

グループにStorage要素が含まれている場合、handler はStorageが破棄される前に呼び出されます。そのため、handler はアクティブなStorageのデータの最後の読み取りを実行することができます。

GroupItem::GroupDoneHandler およびonGroupSetup()も参照のこと

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

グループ設定ハンドラを保持するグループのエレメントを構築します。handler はグループが開始するたびに呼び出される。

渡されるhandler は、std::function<SetupResult()> またはstd::function<void()> タイプです。使用可能なハンドラ型の詳細については、GroupItem::GroupSetupHandler を参照してください。

handler が呼び出されるとき、グループの子タスクはまだ実行されていない。

グループにStorage要素が含まれている場合、handler はStorageが構築された後に呼び出されるので、handler はすでにアクティブなStorageに対して何らかの初期修正を実行している可能性がある。

GroupItem::GroupSetupHandler およびonGroupDone()も参照のこと

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

渡されたsendersignal を発する時に終了する待ちタスクを返す。

注意: 渡されたsendersignal への接続は、返されたタスクが作成されたりレシピに入れられたりするときではなく、QTaskTree によってタスクが開始されるときに確立されます。 確実に、渡されたsender は、返されたタスクを含む実行中のタスクツリーよりも長生きします。signal がタスク開始前、すなわち接続が確立される前に発行された場合、タスクはタスク開始後のsignal の最初の発行で終了する。

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

timeoutQTimeoutTask を作成し、result でタスクを終了する。

QTimeoutTaskも参照のこと

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

与えられたpolicy に対して、グループのworkflow policy 要素を構築する。

便宜上、グローバル要素を代わりに使用することもできます。

stopOnError,continueOnError,stopOnSuccess,continueOnSuccess,stopOnSuccessOrError,finishAllAndSuccess,finishAllAndError,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.