Condividi tramite


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.

Vedi anche

Spazio dei nomi concurrency