Класс 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 объект не должен деструкировать до тех пор, пока waitrun_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