QTaskBuilder 类

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

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

头: #include <QTaskBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Concurrent)
target_link_libraries(mytarget PRIVATE Qt6::Concurrent)
qmake: QT += concurrent
Since: Qt 6.0

公共函数

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

详细描述

It's not possible to create an object of this class manually. See 并发任务 for more details and usage examples.

成员函数文档编制

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

Sets the thread pool newThreadPool that the task will be invoked on.

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

Runs the task in a separate thread and returns a future object immediately. This is a non-blocking call. The task might not start immediately.

void QTaskBuilder:: spawn ( QtConcurrent::FutureResult )

Runs the task in a separate thread. This is a non-blocking call. The task might not start immediately.

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

Sets the arguments args the task will be invoked with. The code is ill-formed (causes compilation errors) if:

  • This function is invoked more than once.
  • The arguments count is zero.

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

Sets the priority newPriority that the task will be invoked with.

相关非成员

[alias] InvokeResultType

The simplified definition of this type looks like this:

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

The real implementation also contains a compile-time check for whether the task can be invoked with the specified arguments or not.