QtTaskTree::QSyncTask Class
class QtTaskTree::QSyncTask他のタスクの間に、カスタムハンドラを同期的に実行します。詳細...
| ヘッダー: | #include <qtasktree.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree) target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| 以下のように: | Qt 6.11 |
| 継承元: | QtTaskTree::ExecutableItem |
| ステータス: | テクノロジープレビュー |
このクラスはテクノロジープレビュー段階にあり、変更される可能性があります。
注:このクラスのすべての関数は再入可能である。
パブリック関数
| QSyncTask(Handler &&handler) |
詳細な説明
QSyncTask は、他のタスクの間に追加のハンドラを実行したい場合に役立ちます。QSyncTask は、その親であるGroup からは、他のタスクと同様に認識されます。QSyncTask のハンドラ本体は、呼び出し元のスレッドから同期的に実行されるため、実行時間が長くなるようなことは避けてください。やむを得ない場合は、代わりにQThreadFunctionTask の使用を検討してください。
メンバ関数のドキュメント
[explicit] template <typename Handler, std::enable_if_t<!std::is_same_v<q20::remove_cvref_t<Handler>, QSyncTask>, bool> = true> QSyncTask::QSyncTask(Handler &&handler)
渡されたhandler を同期的に実行する要素を構築します。Handler はstd::function<DoneResult()> 型です。handler によって返されるDoneResult の値は、親グループのworkflow policy の解決時に考慮されます。オプションとして、std::function<void()> の短縮形式も受け入れられます。この場合、戻り値はDoneResult::Success であるとみなされます。
渡されたhandler は呼び出し元スレッドから同期的に実行されるため、ハンドラ本体の実行時間が長くなりすぎないようにしてください。そうでない場合は、QThreadFunctionTask の使用を検討してください。
注:QSyncTask要素は 、タスクツリーの進行状況を報告する際にタスクとしてカウントされず、QTaskTree::taskCount()やQTaskTree::progressMaximum()にも含まれません。
© 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.