Qt TaskTree
Qt TaskTree は、適切なエラー処理と実行ポリシーを備えた非同期タスクワークフローを、宣言的な方法で構成・実行する手段を提供します。
注: 6.12 版の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 バージョン 3 またはGNU General Public License バージョン 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.