Classe task_completion_event
La classe task_completion_event
consente di ritardare l'esecuzione di un'attività fino a quando non viene soddisfatta una condizione oppure di avviare un'attività in risposta a un evento esterno.
Sintassi
template<typename _ResultType>
class task_completion_event;
template<>
class task_completion_event<void>;
Parametri
_ResultType
Il tipo di risultato di questa classe task_completion_event
.
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
task_completion_event | Costruisce un oggetto task_completion_event . |
Metodi pubblici
Nome | Descrizione |
---|---|
set | Con overload. Imposta l'evento di completamento attività. |
set_exception | Con overload. Propaga un'eccezione a tutte le attività associate a questo evento. |
Osservazioni:
Usare un'attività creata da un evento di completamento attività quando lo scenario richiede di creare un'attività che verrà completata, le cui continuazioni saranno in tal modo programmate per l'esecuzione in un momento successivo. task_completion_event
deve avere lo stesso tipo di attività creata dall'utente e la chiamata del metodo set dell'evento di completamento attività con un valore di quel tipo causerà il completamento dell'attività associata e fornirà tale valore come risultato delle relative continuazioni.
Se l'evento di completamento di attività non viene mai segnalato, le eventuali attività create in base ad esso verranno annullate quando verrà eliminato.
task_completion_event
si comporta come un puntatore intelligente e deve essere passato in base al valore.
Gerarchia di ereditarietà
task_completion_event
Requisiti
Intestazione: ppltasks.h
Spazio dei nomi: Concurrency
set
Imposta l'evento di completamento attività.
bool set(_ResultType _Result) const ;
bool set() const ;
Parametri
_Risultato
Risultato con cui impostare questo evento.
Valore restituito
Il metodo restituisce true
se ha avuto esito positivo nell'impostazione dell'evento. Restituisce false
se l'evento è già impostato.
Osservazioni:
In presenza di più chiamate simultanee a set
, solo la prima chiamata avrà esito positivo e il relativo risultato (se presente) verrà archiviato nell'evento di completamento dell'attività. I set rimanenti vengono ignorati e il metodo restituirà false. Quando si imposta un evento di completamento dell'attività, tutte le attività create da tale evento verranno completate immediatamente e le relative continuazioni, se presenti, verranno pianificate. Gli oggetti di completamento delle attività con un _ResultType
valore diverso da void
passeranno il valore alle relative continuazioni.
set_exception
Propaga un'eccezione a tutte le attività associate a questo evento.
template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;
__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;
Parametri
_E
Tipo di eccezione.
_Eccetto
Eccezione da impostare.
_ExceptionPtr
Puntatore all'eccezione da impostare.
Valore restituito
task_completion_event
Costruisce un oggetto task_completion_event
.
task_completion_event();