このページでは

QtConcurrent::QTaskBuilder Class

template <typename Task, typename... Args> class QtConcurrent::QTaskBuilder

QTaskBuilder クラスは、タスクのパラメータを調整するために使用されます。詳細...

ヘッダー: #include <qtaskbuilder.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Concurrent)
target_link_libraries(mytarget PRIVATE Qt6::Concurrent)
qmake: QT += concurrent
以下のように: Qt 6.0

パブリック関数

QtConcurrent::QTaskBuilder<Task, Args...> &onThreadPool(QThreadPool &newThreadPool)
QFuture<QtConcurrent::InvokeResultType> spawn()
void spawn(QtConcurrent::FutureResult)
QtConcurrent::QTaskBuilder<Task, ExtraArgs...> withArguments(ExtraArgs &&... args)
QtConcurrent::QTaskBuilder<Task, Args...> &withPriority(int newPriority)

詳細な説明

テンプレートパラメータ `Task ` は呼び出し可能な型を指定し、`Args ` はタスクの呼び出しに使用される引数の型を指定します。

このクラスのオブジェクトを手動で作成することはできません。詳細および使用例については、「並行タスク」を参照してください。

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

QtConcurrent::QTaskBuilder<Task, Args...> &QTaskBuilder::onThreadPool(QThreadPool &newThreadPool)

タスクが実行されるスレッドプール `newThreadPool ` を設定します。

QFuture<QtConcurrent::InvokeResultType> QTaskBuilder::spawn()

タスクを別のスレッドで実行し、直ちにフューチャーオブジェクトを返します。これはノンブロッキング呼び出しです。タスクは直ちに開始されない場合があります。

void QTaskBuilder::spawn(QtConcurrent::FutureResult)

タスクを別のスレッドで実行します。これはノンブロッキング呼び出しです。タスクは直ちに開始されない場合があります。

template <typename... ExtraArgs> QtConcurrent::QTaskBuilder<Task, ExtraArgs...> QTaskBuilder::withArguments(ExtraArgs &&... args)

タスクが呼び出される際に使用される引数 `args ` を設定します。以下の場合、コードは不正な形式となり(コンパイルエラーが発生します):

  • この関数が 2 回以上呼び出された場合。
  • 引数の数が 0 の場合。

QtConcurrent::QTaskBuilder<Task, Args...> &QTaskBuilder::withPriority(int newPriority)

タスクが呼び出される際の優先度newPriority を設定します。

関連する非メンバー

[alias] InvokeResultType

この型の簡略化された定義は次のようになります:

template <class Task, class ...Args>
using InvokeResultType = std::invoke_result_t<std::decay_t<Task>, std::decay_t<Args>...>;

実際の実装では、指定された引数でタスクを呼び出せるかどうかをコンパイル時にチェックする処理も含まれています。

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