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();

Vedi anche

Spazio dei nomi concurrency