78 lines
2.6 KiB
Plaintext
78 lines
2.6 KiB
Plaintext
// Copyright (C) 2020 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
|
|
|
/*!
|
|
\class QtConcurrent::QTaskBuilder
|
|
\inmodule QtConcurrent
|
|
\brief The QTaskBuilder class is used for adjusting task parameters.
|
|
\since 6.0
|
|
|
|
\ingroup thread
|
|
|
|
It's not possible to create an object of this class manually. See
|
|
\l {Concurrent Task} for more details and usage examples.
|
|
*/
|
|
|
|
/*!
|
|
\fn template <class Task, class ...Args> [[nodiscard]] QFuture<InvokeResultType> QtConcurrent::QTaskBuilder<Task, Args...>::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.
|
|
*/
|
|
|
|
/*!
|
|
\fn template <class Task, class ...Args> void QtConcurrent::QTaskBuilder<Task, Args...>::spawn(QtConcurrent::FutureResult)
|
|
|
|
Runs the task in a separate thread. This is a non-blocking call.
|
|
The task might not start immediately.
|
|
*/
|
|
|
|
/*!
|
|
\fn template <class Task, class ...Args> template <class ...ExtraArgs> [[nodiscard]] QTaskBuilder<Task, ExtraArgs...> QtConcurrent::QTaskBuilder<Task, Args...>::withArguments(ExtraArgs &&...args)
|
|
|
|
Sets the arguments \a args the task will be invoked with. The code is ill-formed
|
|
(causes compilation errors) if:
|
|
\list
|
|
\li This function is invoked more than once.
|
|
\li The arguments count is zero.
|
|
\endlist
|
|
*/
|
|
|
|
/*!
|
|
\fn template <class Task, class ...Args> [[nodiscard]] QTaskBuilder<Task, Args...> &QtConcurrent::QTaskBuilder<Task, Args...>::onThreadPool(QThreadPool &newThreadPool)
|
|
|
|
Sets the thread pool \a newThreadPool that the task will be invoked on.
|
|
*/
|
|
|
|
/*!
|
|
\fn template <class Task, class ...Args> [[nodiscard]] QTaskBuilder<Task, Args...> &QtConcurrent::QTaskBuilder<Task, Args...>::withPriority(int newPriority)
|
|
|
|
Sets the priority \a newPriority that the task will be invoked with.
|
|
*/
|
|
|
|
/*!
|
|
\typedef InvokeResultType
|
|
\relates QtConcurrent::QTaskBuilder
|
|
|
|
The simplified definition of this type looks like this:
|
|
\code
|
|
template <class Task, class ...Args>
|
|
using InvokeResultType = std::invoke_result_t<std::decay_t<Task>, std::decay_t<Args>...>;
|
|
\endcode
|
|
|
|
The real implementation also contains a compile-time check for
|
|
whether the task can be invoked with the specified arguments or not.
|
|
*/
|
|
|
|
/*!
|
|
\enum QtConcurrent::FutureResult
|
|
|
|
This enum type is used to invoke a special overload of
|
|
QtConcurrent::QTaskBuilder::spawn(QtConcurrent::FutureResult)
|
|
that doesn't return a future object.
|
|
|
|
\value Ignore
|
|
An auxiliary tag which introduced to improve code
|
|
readability.
|
|
*/
|