Classe event
Un evento di reimpostazione manuale che tiene conto in modo esplicito del runtime di concorrenza.
Sintassi
class event;
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
Distruttore ~event | Elimina un evento. |
Metodi pubblici
Nome | Descrizione |
---|---|
reset | Reimposta l'evento su uno stato non segnalato. |
set | Segnala l'evento. |
aspettare | Attende che l'evento venga segnalato. |
wait_for_multiple | Attende la segnalazione di più eventi. |
Costanti pubbliche
Nome | Descrizione |
---|---|
timeout_infinite | Valore indicante un'attesa che non deve terminare mai. |
Osservazioni:
Per altre informazioni, vedere Strutture dei dati di sincronizzazione.
Gerarchia di ereditarietà
event
Requisiti
Intestazione: concrt.h
Spazio dei nomi: Concurrency
evento
Costruisce un nuovo evento.
_CRTIMP event();
Osservazioni:
~evento
Elimina un evento.
~event();
Osservazioni:
È previsto che non ci siano thread in attesa dell'evento quando viene eseguito il distruttore. Se si consente all'evento di eseguire la distruzione quando i thread sono ancora in attesa si verificherà un comportamento non definito.
reset (ripristina)
Reimposta l'evento su uno stato non segnalato.
void reset();
set
Segnala l'evento.
void set();
Osservazioni:
Segnalare l'evento potrebbe causare un numero arbitrario di contesti in attesa che l'evento diventi eseguibile.
timeout_infinite
Valore indicante un'attesa che non deve terminare mai.
static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;
wait
Attende che l'evento venga segnalato.
size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parametri
_Timeout
Indica il numero di millisecondi prima del timeout dell'attesa. Il valore COOPERATIVE_TIMEOUT_INFINITE
indica che non esiste alcun timeout.
Valore restituito
Se l'attesa è stata soddisfatta, viene restituito il valore 0
; in caso contrario, il valore COOPERATIVE_WAIT_TIMEOUT
per indicare che il timeout di attesa è scaduto senza che l'evento venga segnalato.
Importante
In un'app piattaforma UWP (Universal Windows Platform) (UWP) non chiamare wait
il thread ASTA perché questa chiamata può bloccare il thread corrente e può causare la mancata risposta dell'app.
wait_for_multiple
Attende la segnalazione di più eventi.
static size_t __cdecl wait_for_multiple(
_In_reads_(count) event** _PPEvents,
size_t count,
bool _FWaitAll,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parametri
_PPEvents
Matrice di eventi da attendere. Il numero di eventi all'interno della matrice è indicato dal count
parametro .
count
Numero di eventi all'interno della matrice fornita nel _PPEvents
parametro .
_FWaitAll
Se impostato sul valore true
, il parametro specifica che tutti gli eventi all'interno della matrice fornita nel _PPEvents
parametro devono essere segnalate per soddisfare l'attesa. Se impostato sul valore false
, specifica che qualsiasi evento all'interno della matrice fornita nel _PPEvents
parametro che viene segnalato soddisfa l'attesa.
_Timeout
Indica il numero di millisecondi prima del timeout dell'attesa. Il valore COOPERATIVE_TIMEOUT_INFINITE
indica che non esiste alcun timeout.
Valore restituito
Se l'attesa è stata soddisfatta, l'indice all'interno della matrice fornita nel _PPEvents
parametro che ha soddisfatto la condizione di attesa; in caso contrario, il valore COOPERATIVE_WAIT_TIMEOUT
per indicare che il timeout di attesa è stato superato senza che la condizione venga soddisfatta.
Osservazioni:
Se il parametro _FWaitAll
è impostato sul valore true
per indicare che tutti gli eventi devono essere indicati per soddisfare l'attesa, l'indice restituito dalla funzione non ha un significato speciale diverso dal fatto che non sia il valore COOPERATIVE_WAIT_TIMEOUT
.
Importante
In un'app piattaforma UWP (Universal Windows Platform) (UWP) non chiamare wait_for_multiple
il thread ASTA perché questa chiamata può bloccare il thread corrente e può causare la mancata risposta dell'app.