Compartir a través de


task_handle (Clase)

La clase task_handle representa un elemento de trabajo individual paralelo. Encapsula las instrucciones y los datos necesarios para ejecutar una parte del trabajo.

Sintaxis

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

Parámetros

_Function
Tipo del objeto de función que se invocará para ejecutar el trabajo representado por el objeto task_handle.

Miembros

Constructores públicos

Nombre Descripción
task_handle Construye un nuevo objeto task_handle. El trabajo de la tarea se realiza invocando la función especificada como un parámetro para el constructor.
~task_handle Destructor Destruye el objeto task_handle.

Operadores públicos

Nombre Descripción
operator() Operador de llamada de función que invoca el runtime para realizar el trabajo del identificador de tarea.

Comentarios

Los objetos task_handlese pueden usar junto con un objeto structured_task_group o un objeto task_group más general, para descomponer el trabajo en tareas paralelas. Para obtener más información, consulte Paralelismo de tareas.

Tenga en cuenta que el creador de un objeto task_handle es responsable de mantener la duración del objeto task_handle creado hasta que ya no lo requiera el runtime de simultaneidad. Normalmente, esto significa que el objeto task_handle no debe destruirse hasta que se haya llamado al método wait o run_and_wait de task_group o structured_task_group al que se ha puesto en cola.

Los objetos task_handle normalmente se usan junto con lambdas de C++. Dado que no conoce el tipo verdadero de la expresión lambda, la función make_task se usa normalmente para crear un objeto task_handle.

El tiempo de ejecución crea una copia de la función de trabajo que se pasa a este objeto task_handle. Por lo tanto, cualquier cambio de estado que se produzca en un objeto de función que pase a este objeto task_handle no aparecerá en la copia de ese objeto de función.

Jerarquía de herencia

task_handle

Requisitos

Encabezado: ppl.h

Espacio de nombres: simultaneidad

operator()

Operador de llamada de función que invoca el runtime para realizar el trabajo del identificador de tarea.

void operator()() const;

task_handle

Construye un nuevo objeto task_handle. El trabajo de la tarea se realiza invocando la función especificada como un parámetro para el constructor.

task_handle(const _Function& _Func);

Parámetros

_Func
Tipo del objeto de función que se invocará para ejecutar el trabajo representado por el objeto task_handle. Esto puede ser un functor lambda, un puntero a una función o cualquier objeto que admita una versión del operador de llamada de función con la signatura void operator()().

Comentarios

El tiempo de ejecución crea una copia de la función de trabajo que se pasa a este constructor. Por lo tanto, cualquier cambio de estado que se produzca en un objeto de función que pase a este objeto task_handle no aparecerá en la copia de ese objeto de función.

~task_handle

Destruye el objeto task_handle.

~task_handle();

Consulte también

concurrency (espacio de nombres)
task_group (clase)
structured_task_group (clase)