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_handle
se 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)