Qt タスクツリー
Qt TaskTree は、適切なエラー処理と実行ポリシーを持つ非同期タスクワークフローを構成し実行するための宣言的な方法を提供します。
注意: 6.11 の Qt TaskTree は技術プレビューであり、その API はQt の互換性の約束から除外されています。
はじめに
Qt TaskTree では、異なる実行ポリシー、並列/逐次実行、適切なエラーハンドリングを持つ複雑なタスク階層を作成することができます。
主なコンセプト
- レシピ- タスクのワークフローを宣言的に記述します。
- グループ- 子タスクの実行ポリシーを定義するコンテナ。
- ストレージ- タスク間でデータを共有するためのスレッドローカルストレージシステム。
- イテレーター- ループと反復タスク実行のサポート。
モジュールの使用
Qt モジュールの C++ API を使用するには、モジュール・ライブラリに対して直接、または他の依存関係を介してリンクする必要があります。CMakeや qmakeなど、いくつかのビルドツールはこのための専用サポートを持っています。
CMake でのビルド
find_package() コマンドを使用して、必要なモジュール・コンポーネントをQt6 パッケージから探します:
find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)詳細については、CMakeによるビルドの概要を参照してください。
qmakeでのビルド
qmakeでビルドするようにモジュールを設定するには、プロジェクトの.proファイルにQT 変数の値としてモジュールを追加します:
QT += tasktree
タスクアダプター
このモジュールには、一般的な操作のためのタスクアダプターがいくつか組み込まれています:
- QProcessTask - 外部プロセスの実行
- QThreadFunctionTask - 外部プロセスの実行。
- QNetworkReplyWrapperTask - ネットワーク操作の処理
- QTcpSocketWrapperTask - TCPソケット操作の処理
- QBarrierTask - 同期プリミティブの提供
- QTimeoutTask - タイマー・ベースの遅延
ワークフローポリシー
グループは、タスク結果を処理するためのさまざまなワークフローポリシーをサポートします:
- StopOnError - 最初のエラーで実行を停止(デフォルト)。
- ContinueOnError - エラーが発生しても実行を継続
- StopOnSuccess - 最初のタスク成功で停止
- ContinueOnSuccess - タスクが成功しても実行を継続
- StopOnSuccessOrError - 最初に完了したタスクで停止
- FinishAllAndSuccess - すべてのタスクを実行し、成功を報告する。
- FinishAllAndError - すべてのタスクを実行し、エラーを報告
例
リファレンス
ライセンス
Qt TaskTree モジュールは、The Qt Company の商用ライセンスで利用できます。さらに、フリーソフトウェアライセンスでも利用可能です:GNU Lesser General Public License, version 3 またはGNU General Public License, version 2 です。詳細はQt ライセンスを参照してください。
© 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.