Compartir a través de


task_completion_event (clase)

La clase task_completion_event permite retrasar la ejecución de una tarea hasta que se satisfaga una condición, o iniciar una tarea en respuesta a un evento externo.

Sintaxis

template<typename _ResultType>
class task_completion_event;

template<>
class task_completion_event<void>;

Parámetros

_ResultType
El tipo de resultado de esta clase task_completion_event.

Miembros

Constructores públicos

Nombre Descripción
task_completion_event Construye un objeto task_completion_event.

Métodos públicos

Nombre Descripción
set Con sobrecarga. Establece el evento de finalización de la tarea.
set_exception Con sobrecarga. Propaga una excepción a todas las tareas asociadas con este evento.

Comentarios

Use una tarea creada a partir de un evento de finalización de la tarea cuando su escenario requiere la creación de una tarea que completar, y así tendrá las continuaciones programadas para su ejecución en el futuro. task_completion_event debe tener el mismo tipo que la tarea que se crea, así como poder llamar al método set en el evento de finalización de la tarea con un valor de ese tipo, lo que provocará que se complete la tarea asociada y proporcionará ese valor como resultado de sus continuaciones.

Si el evento de finalización de la tarea nunca se señala, cualquier tarea creada a partir de ese evento se cancelará cuando se destruye.

El objeto task_completion_event se comporta como un puntero inteligente y debe pasar por valor.

Jerarquía de herencia

task_completion_event

Requisitos

Encabezado: ppltasks.h

Espacio de nombres: simultaneidad

set

Establece el evento de finalización de la tarea.

bool set(_ResultType _Result) const ;

bool set() const ;

Parámetros

_Result
Resultado con el que se va a establecer este evento.

Valor devuelto

El método devuelve true si se realizó correctamente al establecer el evento. Devuelve false si el evento ya está establecido.

Comentarios

En presencia de varias llamadas simultáneas o múltiples a set, solo la primera llamada se realizará correctamente y su resultado (si existe) se almacenará en el evento de finalización de la tarea. Los conjuntos restantes se omiten y el método devolverá false. Al establecer un evento de finalización de tareas, todas las tareas creadas a partir de ese evento se completarán inmediatamente y se programarán sus continuaciones, si las hay. Objetos de finalización de tareas que tienen un _ResultType valor distinto void de pasará el valor a sus continuaciones.

set_exception

Propaga una excepción a todas las tareas asociadas con este evento.

template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;

__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;

Parámetros

_E
Tipo de la excepción.

_Except
Excepción que se va a establecer.

_ExceptionPtr
Puntero de excepción que se va a establecer.

Valor devuelto

task_completion_event

Construye un objeto task_completion_event.

task_completion_event();

Consulte también

concurrency (espacio de nombres)