Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |
|---|---|
| evento_de_finalización_de_tarea | Construye un objeto task_completion_event. |
Métodos públicos
| Nombre | Descripción |
|---|---|
| set | Sobrecargado Establece el evento de finalización de la tarea. |
| set_exception | Sobrecargado Propaga una excepción a todas las tareas asociadas con este evento. |
Comentarios
Utilice una tarea que se crea a partir de un evento de finalización de tarea cuando su escenario requiera crear una tarea que se completará y, por lo tanto, tendrá sus continuaciones programadas para la ejecución en el futuro.
task_completion_event debe tener el mismo tipo que la tarea que se crea, y llamar al método set en la finalización de la tarea con un valor de ese tipo hará que la tarea asociada se complete y proporcione ese valor como resultado a sus continuaciones.
Si el evento de finalización de la tarea nunca se señaliza, cualquier tarea creada a partir de ese evento puede cancelarse cuando se destruya.
El objeto task_completion_event se comporta como un puntero inteligente y debe pasarse 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 establece el evento correctamente. 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 completación de tareas que tienen un _ResultType diferente a void pasarán 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
evento_de_finalización_de_tarea
Construye un objeto task_completion_event.
task_completion_event();