Класс task_handle
Класс task_handle представляет отдельный параллельный рабочий элемент. Он инкапсулирует инструкции и данные, необходимые для выполнения части работы.
template<
typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;
Параметры
- _Function
Тип объекта функции, который будет вызываться для выполнения работы, представленной объектом task_handle.
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Создает новый объект task_handle. Работа задачи выполняется путем вызова функции, указанной в качестве параметра конструктора. |
|
Уничтожает объект task_handle. |
Открытые операторы
Имя |
Описание |
---|---|
Оператор вызова функции, который среда выполнения вызывает для выполнения работ дескриптора задачи. |
Заметки
Объекты 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, не отобразятся в пользовательской копии объекта функции.
Иерархия наследования
_Chore
_AllocBase
_UnrealizedChore
Требования
Заголовок: ppl.h
Пространство имен: Concurrency
См. также
Ссылки
Метод structured_task_group::run
Метод structured_task_group::wait