Класс task_handle
Класс task_handle
представляет отдельный параллельный рабочий элемент. Он инкапсулирует инструкции и данные, необходимые для выполнения части работы.
Синтаксис
template<
typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;
Параметры
_Функция
Тип объекта функции, который будет вызван для выполнения работы, представленной task_handle
объектом.
Участники
Открытые конструкторы
Имя | Описание |
---|---|
task_handle | Создает новый объект task_handle . Работа задачи выполняется путем вызова функции, указанной в качестве параметра конструктора. |
Деструктор ~task_handle | Уничтожает task_handle объект. |
Открытые операторы
Имя | Описание |
---|---|
operator() | Оператор вызова функции, вызываемый средой выполнения для выполнения работы дескриптора задачи. |
Замечания
task_handle
Объекты можно использовать в сочетании с structured_task_group
более общим task_group
объектом для разложения работы в параллельные задачи. Дополнительные сведения см. в разделе "Параллелизм задач".
Обратите внимание, что создатель task_handle
объекта отвечает за сохранение времени существования созданного task_handle
объекта, пока он больше не требуется средой выполнения параллелизма. Как правило, это означает, что task_handle
объект не должен деструкировать до тех пор, пока wait
run_and_wait
не будет вызван метод или structured_task_group
методtask_group
, к которому он находится в очереди.
task_handle
Объекты обычно используются в сочетании с лямбда-кодами C++. Так как вы не знаете истинный тип лямбда-кода, функция make_task обычно используется для создания task_handle
объекта.
Среда выполнения создает копию рабочей функции, передаваемой объекту task_handle
. Таким образом, любые изменения состояния, происходящие в объекте функции, передаваемом объекту task_handle
, не будут отображаться в копии этого объекта функции.
Иерархия наследования
task_handle
Требования
Заголовок: ppl.h
Пространство имен: concurrency
operator()
Оператор вызова функции, вызываемый средой выполнения для выполнения работы дескриптора задачи.
void operator()() const;
task_handle
Создает новый объект task_handle
. Работа задачи выполняется путем вызова функции, указанной в качестве параметра конструктора.
task_handle(const _Function& _Func);
Параметры
_Func
Функция, которая будет вызвана для выполнения работы, представленной task_handle
объектом. Это может быть лямбда-functor, указатель на функцию или любой объект, поддерживающий версию оператора вызова функции с подписью void operator()()
.
Замечания
Среда выполнения создает копию рабочей функции, передаваемой конструктору. Таким образом, любые изменения состояния, происходящие в объекте функции, передаваемом объекту task_handle
, не будут отображаться в копии этого объекта функции.
~task_handle
Уничтожает task_handle
объект.
~task_handle();
См. также
Пространство имен concurrency
Класс task_group
Класс structured_task_group