Поделиться через


Класс 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 до тех пор, пока он больше не требуется средой выполнения Concurrency Runtime. Как правило, это означает, что объект task_handle не должен уничтожаться до тех пор, пока не будет вызван метод wait или run_and_wait объекта task_group или structured_task_group, в который он находится в очереди.

task_handle Объекты обычно используются в сочетании с лямбда-кодами C++. Так как вы не знаете истинный тип лямбда-кода, функция make_task обычно используется для создания task_handle объекта.

Среда выполнения создает копию рабочей функции, передаваемой объекту task_handle . Таким образом, любые изменения состояния, происходящие в объекте функции, передаваемом объекту task_handle , не будут отображаться в копии этого объекта функции.

Иерархия наследования

task_handle

Требования

Заголовок: ppl.h

Пространство имен: конкурентность

operator()

Оператор вызова функции, вызываемый средой выполнения для выполнения работы дескриптора задачи.

void operator()() const;

идентификатор задачи

Создает новый объект task_handle. Работа задачи выполняется путем вызова функции, указанной в качестве параметра конструктора.

task_handle(const _Function& _Func);

Параметры

_Func
Функция, которая будет вызвана для выполнения работы, представленной task_handle объектом. Это может быть лямбда-функтор, указатель на функцию или любой объект, поддерживающий версию оператора вызова функции с сигнатурой void operator()().

Замечания

Среда выполнения создает копию рабочей функции, передаваемой конструктору. Таким образом, любые изменения состояния, происходящие в объекте функции, передаваемом объекту task_handle , не будут отображаться в копии этого объекта функции.

~task_handle

Уничтожает task_handle объект.

~task_handle();

См. также

Пространство имен параллелизм
Класс task_group
Класс structured_task_group