QtConcurrent::QTaskBuilder Class

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

QTaskBuilder 类用于调整任务参数。更多

Header: #include <QTaskBuilder>
CMake.QTaskBuilder 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)

详细说明

无法手动创建该类对象。有关详细信息和使用示例,请参阅并发任务

成员函数文档

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

设置调用任务的线程池newThreadPool

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

在单独的线程中运行任务,并立即返回一个 future 对象。这是一个非阻塞调用。任务可能不会立即启动。

void QTaskBuilder::spawn(QtConcurrent::FutureResult)

在单独的线程中运行任务。这是一个非阻塞调用。任务可能不会立即启动。

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

设置调用任务时的参数args 。如果出现以下情况,则代码格式错误(导致编译错误):

  • 该函数被调用多次。
  • 参数数为零。

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

真正的实现还包含一个编译时检查,以确定是否可以使用指定参数调用任务。

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