Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс 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