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.

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

Parámetros

  • _Function
    El tipo del objeto de función que se invocará para ejecutar el trabajo que representa el objeto task_handle.

Miembros

Constructores públicos

Name

Descripción

task_handle::task_handle (Constructor)

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

task_handle::~task_handle (Destructor)

Destruye el objeto task_handle.

Operadores públicos

Name

Descripción

task_handle::operator() (Operador)

El operador de llamada de función que invoca el runtime para realizar el trabajo del identificador de tareas.

Comentarios

Los objetos task_handle se pueden usar junto con un objeto task_group o un objeto más general structured_task_group, para descomponer el trabajo en tareas paralelas. Para obtener más información, vea Paralelismo de tareas (Runtime de simultaneidad).

Observe 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 se debe destruir hasta que se llama al método run_and_wait o wait, de task_group o structured_task_group, al que se pone en cola.

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

El motor en tiempo de ejecución crea una copia de la función de trabajo que se pasa a un objeto task_handle. Por consiguiente, los cambios de estado que se produzcan en el objeto de función pasado a un objeto task_handle no aparecerán en su copia de dicho objeto de función.

Jerarquía de herencia

task_handle

Requisitos

Encabezado: ppl.h

Espacio de nombres: simultaneidad

Vea también

Referencia

concurrency (Espacio de nombres)

task_group (Clase)

structured_task_group (Clase)

make_task (Función)

task_group::run (Método)

task_group::wait (Método)

task_group::run_and_wait (Método)

structured_task_group::run (Método)

structured_task_group::wait (Método)

structured_task_group::run_and_wait (Método)