Класс task_handle

Класс task_handle представляет отдельный параллельный рабочий элемент. Он инкапсулирует инструкции и данные, необходимые для выполнения части работы.

template<
   typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;

Параметры

  • _Function
    Тип объекта функции, который будет вызываться для выполнения работы, представленной объектом task_handle.

Члены

Открытые конструкторы

Name

Описание

Конструктор task_handle::task_handle

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

Деструктор task_handle::~task_handle

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

Открытые операторы

Name

Описание

Оператор task_handle::operator()

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

Заметки

Объекты task_handle могут использоваться в сочетании с structured_task_group или более общим объектом task_group для разделения работы в параллельные задачи. Для получения дополнительной информации см. Параллелизм задач (среда выполнения с параллелизмом).

Обратите внимание, что создатель объекта task_handle ответственен за поддержание времени существования, созданного объекта task_handle до тех пор, пока он больше не требуется средой параллелизма. Как правило это означает, что объект 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

Пространство имен: concurrency

См. также

Ссылки

Пространство имен concurrency

Класс task_group

Класс structured_task_group

Функция make_task

Метод task_group::run

Метод task_group::wait

Метод task_group::run_and_wait

Метод structured_task_group::run

Метод structured_task_group::wait

Метод structured_task_group::run_and_wait