QTaskBuilder Class

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

The QTaskBuilder class is used for adjusting task parameters. More...

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

Public Functions

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

Detailed Description

It's not possible to create an object of this class manually. See Concurrent Task for more details and usage examples.

Member Function Documentation

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.

Related Non-Members

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qtconcurrent-qtaskbuilder.html