Dela via


händelseklass

En manuell återställningshändelse som uttryckligen är medveten om Samtidighetskörning.

Syntax

class event;

Members

Offentliga konstruktorer

Namn Description
~event Destructor Förstör en händelse.

Offentliga metoder

Namn Description
återställa Återställer händelsen till ett icke-signalerat tillstånd.
set Signalerar händelsen.
Vänta Väntar på att händelsen ska signaleras.
vänta_på_flera Väntar på att flera händelser ska signaleras.

Offentliga konstanter

Namn Description
timeout_infinite Värde som anger att en väntetid aldrig ska överskrida tidsgränsen.

Anmärkningar

Mer information finns i Synkronisera datastrukturer.

Arvshierarki

event

Kravspecifikation

Rubrik: concrt.h

Namnområde: samtidighet

händelse

Skapar en ny händelse.

_CRTIMP event();

~händelse

Förstör en händelse.

~event();

Anmärkningar

Det förväntas att det inte finns några trådar som väntar på händelsen när destruktorn körs. Om du tillåter att händelsen förstörs med trådar som fortfarande väntar på den resulterar det i odefinierat beteende.

reset

Återställer händelsen till ett icke-signalerat tillstånd.

void reset();

set

Signalerar händelsen.

void set();

Anmärkningar

Signalering av händelsen kan leda till att ett godtyckligt antal kontexter som väntar på händelsen blir körbara.

timeout_infinite

Värde som anger att en väntetid aldrig ska överskrida tidsgränsen.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

wait

Väntar på att händelsen ska signaleras.

size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

Parameterar

_Timeout
Anger antalet millisekunder innan väntetiden överskrids. Värdet COOPERATIVE_TIMEOUT_INFINITE betyder att det inte finns någon tidsgräns.

Returvärde

Om väntetiden var uppfylld returneras värdet 0 . Annars returneras värdet COOPERATIVE_WAIT_TIMEOUT för att indikera att tidsgränsen för väntetiden har överskridits utan att händelsen har signalerats.

Viktigt!

I en UWP-app (Universal Windows Platform) anropar wait du inte ASTA-tråden eftersom det här anropet kan blockera den aktuella tråden och kan leda till att appen inte svarar.

wait_for_multiple

Väntar på att flera händelser ska signaleras.

static size_t __cdecl wait_for_multiple(
    _In_reads_(count) event** _PPEvents,
    size_t count,
    bool _FWaitAll,
    unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

Parameterar

_PPEvents
En matris med händelser att vänta på. Antalet händelser i matrisen anges av parametern count .

antal
Antalet händelser i matrisen som anges i parametern _PPEvents .

_FWaitAll
Om värdet anges trueanger parametern att alla händelser i matrisen som anges i parametern _PPEvents måste signaleras för att uppfylla väntetiden. Om värdet anges falseanger det att alla händelser i matrisen som anges i parametern _PPEvents som signaleras kommer att uppfylla väntetiden.

_Timeout
Anger antalet millisekunder innan väntetiden överskrids. Värdet COOPERATIVE_TIMEOUT_INFINITE betyder att det inte finns någon tidsgräns.

Returvärde

Om väntetiden var uppfylld uppfylldes indexet i matrisen som angavs i parametern _PPEvents som uppfyllde väntevillkoret, annars värdet COOPERATIVE_WAIT_TIMEOUT för att indikera att väntetiden överskridit tidsgränsen utan att villkoret uppfylldes.

Anmärkningar

Om parametern _FWaitAll är inställd på värdet true för att indikera att alla händelser måste signaleras för att uppfylla väntetiden, har indexet som returneras av funktionen ingen särskild betydelse förutom det faktum att det inte är värdet COOPERATIVE_WAIT_TIMEOUT.

Viktigt!

I en UWP-app (Universal Windows Platform) anropar wait_for_multiple du inte ASTA-tråden eftersom det här anropet kan blockera den aktuella tråden och kan leda till att appen inte svarar.

Se även

namnområde för samtidighet