Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.