このページでは

QtTaskTree::Do Class

class QtTaskTree::Do

For および When 構文で使用される本体要素。詳細...

ヘッダー: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
以下のように: Qt 6.11
ステータス: テクノロジープレビュー

このクラスはテクノロジープレビュー段階にあり、変更される可能性があります。

注:このクラスのすべての関数は再入可能です。

パブリック関数

Do(const QtTaskTree::GroupItems &children)
Do(std::initializer_list<QtTaskTree::GroupItem> children)
Do(QtTaskTree::Do &&other)
QtTaskTree::Group operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem)

詳細な説明

各For の反復処理、またはWhen のバリアが前進した後に実行されるタスクのリストを保持する本体要素。

For (RepeatIterator(5)) >> Do {
    task1,
    task2
};

For ループの場合、Do の本体は複数回実行されます。onGroupSetup() またはonGroupDone() ハンドラが Do のコンストラクタに渡された子の一部である場合、それらは 1 回だけ実行されます。つまり、ループ全体が開始される前と、ループ全体が終了した後に実行されます。

const RepeatIterator iterator(3);

const auto onSetup = [] { qDebug() << "Setup"; };

const auto onSync = [iterator] { qDebug() << "Current iteration:" << iterator->iteration(); };

const auto onDone = [] { qDebug() << "Done"; };

const Group recipe = For (iterator) >> Do {
    onGroupSetup(onSetup),
    QSyncTask(onSync),
    onDone(onDone)
};

上記のリシピを実行すると、次のような出力が得られます:

Setup
Current iteration: 0
Current iteration: 1
Current iteration: 2
Done

各反復でグループハンドラを呼び出したい場合は、次のように、Doの本体をGroup で囲みます:

const Group recipe = For (iterator) >> Do {
    Group {
        onGroupSetup(onSetup),
        QSyncTask(onSync),
        onDone(onDone)
    }
};

後者のレシピを実行すると、次のような出力が得られます:

Setup
Current iteration: 0
Done
Setup
Current iteration: 1
Done
Setup
Current iteration: 2
Done

Storage が本体の直接の子として渡された場合も同様です。ストレージ構造体は、ループ全体が始まる前に一度だけインスタンス化され、ループ全体が終了した直後に破棄されます。各反復ごとにStorage の個別のインスタンスを作成したい場合は、Doの本体を追加のGroup で囲んでください。

For ループのDo本体にparallel 要素を配置する際は注意が必要です。すべての反復処理が並列で開始されるためです。特にForeverIterator を使用する場合、これは望ましくない結果となる可能性があります。

For およびWhenも参照してください 。

メンバ関数のドキュメント

[explicit] Do::Do(const QtTaskTree::GroupItems &children)

各For の反復実行時、またはWhen のバリアが前進した後に実行される、children を持つDo本体を構築します。

[explicit] Do::Do(std::initializer_list<QtTaskTree::GroupItem> children)

children を初期化リストとして渡して、Do 本体を構築します。

これはオーバーロードされた関数です。

[constexpr noexcept default] Do::Do(QtTaskTree::Do &&other)

Do のインスタンスをムーブコンストラクトで生成します。

関連する非メンバー

QtTaskTree::Group operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem)

whenItem とdoItem のボディを結合し、タスクツリーのレシピでそのまま使用できるGroup を返します。

© 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.