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 |
---|---|
Crea un nuevo objeto task_handle. El trabajo de la tarea se realiza invocando la función especificada como un parámetro al constructor. |
|
Destruye el objeto task_handle. |
Operadores públicos
Name |
Descripción |
---|---|
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::run_and_wait (Método)
structured_task_group::run (Método)