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() El operador de llamada de función que el tiempo de ejecución invoca para realizar el trabajo del manejo 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 gestionar la vida útil del objeto task_handle creado hasta que ya no lo requiera el tiempo de ejecución de Concurrency. 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 usted pasa a un 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()

El operador de llamada de función que el tiempo de ejecución invoca para realizar el trabajo del identificador de tarea.

void operator()() const;

manejador_de_tarea

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
La 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 entorno de ejecución crea una copia de la función de trabajo que pasas al 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

espacio de nombres de concurrencia
task_group Clase
structured_task_group Clase