Condividi tramite


Classe evento

Un evento di reimpostazione manuale che tiene conto in modo esplicito del runtime di concorrenza.

Sintassi

class event;

Membri

Costruttori pubblici

Nome Descrizione
~event Distruttore 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();

~evento

Elimina un evento.

~event();

Osservazioni:

Si prevede che non ci siano thread in attesa dell'evento quando il distruttore entra in esecuzione. Se si consente all'evento di eseguire la distruzione quando i thread sono ancora in attesa si verificherà un comportamento non definito.

reset (ripristino)

Reimposta l'evento su uno stato non segnalato.

void reset();

set

Segnala l'evento.

void set();

Osservazioni:

Segnalare l'evento può far sì che un numero arbitrario di contesti in attesa dell'evento diventino operativi.

timeout_infinite

Valore indicante un'attesa che non deve terminare mai.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

attendere

Attende che l'evento venga segnalato.

size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

Parametri

_Timeout
Indica il numero di millisecondi prima che l'attesa raggiunga il timeout. Il valore COOPERATIVE_TIMEOUT_INFINITE indica che non è previsto 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'applicazione della piattaforma UWP (Universal Windows Platform), non chiamare wait sul thread ASTA perché questa chiamata può bloccare il thread corrente e causare che l'app diventi non rispondente.

attendi_per_multipli

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 che passano prima che l'attesa vada in timeout. Il valore COOPERATIVE_TIMEOUT_INFINITE indica che non è previsto alcun timeout.

Valore restituito

Se l'attesa è stata soddisfatta, viene restituito l'indice all'interno della matrice fornita nel parametro _PPEvents che ha soddisfatto la condizione di attesa; altrimenti, viene restituito il valore COOPERATIVE_WAIT_TIMEOUT per indicare che il timeout di attesa è scaduto senza che la condizione fosse 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 per la Universal Windows Platform (UWP), non chiamare wait_for_multiple nel thread ASTA perché questa chiamata può bloccare il thread corrente e può causare la non risposta dell'app.

Vedi anche

Spazio dei nomi concorrenza