Класс task_handletask_handle Class

Класс task_handle представляет отдельный параллельный рабочий элемент.The task_handle class represents an individual parallel work item. Он инкапсулирует инструкции и данные, необходимые для выполнения части работы.It encapsulates the instructions and the data required to execute a piece of work.

СинтаксисSyntax

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

ПараметрыParameters

_Function_Function
Тип объекта функции, который будет вызываться для выполнения работы, представленной task_handle объектом.The type of the function object that will be invoked to execute the work represented by the task_handle object.

ЭлементыMembers

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

nameName ОписаниеDescription
task_handletask_handle Создает новый объект task_handle.Constructs a new task_handle object. Работа задачи выполняется путем вызова функции, указанной в качестве параметра конструктора.The work of the task is performed by invoking the function specified as a parameter to the constructor.
Деструктор ~ task_handle~task_handle Destructor Уничтожает task_handle объект.Destroys the task_handle object.

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

ИмяName ОписаниеDescription
оператор ()operator() Оператор вызова функции, который вызывается средой выполнения для выполнения работы обработчика задачи.The function call operator that the runtime invokes to perform the work of the task handle.

КомментарииRemarks

task_handle объекты можно использовать в сочетании с structured_task_group или более общим task_group объектом для разложения работы в параллельные задачи.task_handle objects can be used in conjunction with a structured_task_group or a more general task_group object, to decompose work into parallel tasks. Дополнительные сведения см. в разделе параллелизм задач.For more information, see Task Parallelism.

Обратите внимание, что создатель task_handle объекта отвечает за поддержание времени существования созданного task_handle объекта, пока он больше не требуется для Среда выполнения с параллелизмом.Note that the creator of a task_handle object is responsible for maintaining the lifetime of the created task_handle object until it is no longer required by the Concurrency Runtime. Как правило, это означает, что task_handle объект не должен уничтожения до тех пор, пока не будет wait run_and_wait вызван метод или, task_group structured_task_group в котором он находится в очереди.Typically, this means that the task_handle object must not destruct until either the wait or run_and_wait method of the task_group or structured_task_group to which it is queued has been called.

task_handle объекты обычно используются в сочетании с лямбда-выражениями C++.task_handle objects are typically used in conjunction with C++ lambdas. Так как неизвестный тип лямбда-выражения незнаком, функция make_task обычно используется для создания task_handle объекта.Because you do not know the true type of the lambda, the make_task function is typically used to create a task_handle object.

Среда выполнения создает копию рабочей функции, передаваемая в task_handle объект.The runtime creates a copy of the work function that you pass to a task_handle object. Таким образом, любые изменения состояния, происходящие в объекте функции, который передается в task_handle объект, не будут отображаться в копии этого объекта функции.Therefore, any state changes that occur in a function object that you pass to a task_handle object will not appear in your copy of that function object.

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

task_handle

ТребованияRequirements

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

Пространство имен: параллелизмNamespace: concurrency

оператор ()operator()

Оператор вызова функции, который вызывается средой выполнения для выполнения работы обработчика задачи.The function call operator that the runtime invokes to perform the work of the task handle.

void operator()() const;

task_handletask_handle

Создает новый объект task_handle.Constructs a new task_handle object. Работа задачи выполняется путем вызова функции, указанной в качестве параметра конструктора.The work of the task is performed by invoking the function specified as a parameter to the constructor.

task_handle(const _Function& _Func);

ПараметрыParameters

_Func_Func
Функция, которая будет вызываться для выполнения работы, представленной task_handle объектом.The function that will be invoked to execute the work represented by the task_handle object. Это может быть лямбда-функтор, указатель на функцию или любой объект, который поддерживает версию оператора вызова функции с сигнатурой void operator()() .This may be a lambda functor, a pointer to a function, or any object that supports a version of the function call operator with the signature void operator()().

КомментарииRemarks

Среда выполнения создает копию рабочей функции, которая передается в конструктор.The runtime creates a copy of the work function that you pass to the constructor. Таким образом, любые изменения состояния, происходящие в объекте функции, который передается в task_handle объект, не будут отображаться в копии этого объекта функции.Therefore, any state changes that occur in a function object that you pass to a task_handle object will not appear in your copy of that function object.

~ task_handle~task_handle

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

~task_handle();

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace
Класс task_grouptask_group Class
Класс structured_task_groupstructured_task_group Class