event – třída
Událost ručního resetování, která explicitně ví o concurrency Runtime.
Syntaxe
class event;
Členové
Veřejné konstruktory
Název | Popis |
---|---|
~destruktor událostí | Zničí událost. |
Veřejné metody
Název | Popis |
---|---|
resetovat | Obnoví událost do stavu, který není signalizoval. |
set | Signalizuje událost. |
Počkej | Čeká na to, až se událost signalizovala. |
wait_for_multiple | Čeká, až se signalizují více událostí. |
Veřejné konstanty
Název | Popis |
---|---|
timeout_infinite | Hodnota označující, že čekání by nikdy neměl časový limit vypršel. |
Poznámky
Další informace naleznete v tématu Synchronizace datových struktur.
Hierarchie dědičnosti
event
Požadavky
Hlavička: concrt.h
Namespace: souběžnost
event
Vytvoří novou událost.
_CRTIMP event();
Poznámky
~událost
Zničí událost.
~event();
Poznámky
Očekává se, že v události při spuštění destruktoru nečekají žádná vlákna. Povolením události destrukci s vlákny, která na ni stále čekají, bude mít za následek nedefinované chování.
resetování
Obnoví událost do stavu, který není signalizoval.
void reset();
set
Signalizuje událost.
void set();
Poznámky
Signalizace události může způsobit libovolný počet kontextů čekajících na spuštění události.
timeout_infinite
Hodnota označující, že čekání by nikdy neměl časový limit vypršel.
static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;
wait
Čeká na to, až se událost signalizovala.
size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parametry
_Přerušení zápasu
Určuje počet milisekund před uplynutím časového limitu čekání. Hodnota COOPERATIVE_TIMEOUT_INFINITE
označuje, že neexistuje žádný časový limit.
Návratová hodnota
Pokud bylo čekání splněno, vrátí se hodnota 0
. V opačném případě hodnota COOPERATIVE_WAIT_TIMEOUT
značí, že časový limit čekání vypršel bez signálu události.
Důležité
V aplikaci Univerzální platforma Windows (UPW) nevolejte wait
vlákno ASTA, protože toto volání může blokovat aktuální vlákno a může způsobit, že aplikace přestane reagovat.
wait_for_multiple
Čeká, až se signalizují více událostí.
static size_t __cdecl wait_for_multiple(
_In_reads_(count) event** _PPEvents,
size_t count,
bool _FWaitAll,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Parametry
_PPEvents
Pole událostí, na které se má čekat. Počet událostí v rámci pole je označen parametrem count
.
count
Počet událostí v rámci pole zadaného v parametru _PPEvents
.
_FWaitAll
Pokud je nastavená hodnota true
, parametr určuje, že všechny události v poli zadaném v parametru _PPEvents
musí být signalizovat, aby bylo možné splnit čekání. Pokud je nastavená hodnota false
, určuje, že každou událost v poli zadaném v parametru _PPEvents
, který se stane signalizovat, splní čekání.
_Přerušení zápasu
Určuje počet milisekund před uplynutím časového limitu čekání. Hodnota COOPERATIVE_TIMEOUT_INFINITE
označuje, že neexistuje žádný časový limit.
Návratová hodnota
Pokud bylo čekání splněno, index v poli zadaném v parametru _PPEvents
, který splnil podmínku čekání, jinak hodnota COOPERATIVE_WAIT_TIMEOUT
označující, že časový limit čekání vypršel bez splnění podmínky.
Poznámky
Pokud je parametr _FWaitAll
nastaven na hodnotu true
označující, že všechny události musí být signalizovat, aby uspokojily čekání, index vrácený funkcí nemá žádný zvláštní význam, než je skutečnost, že to není hodnota COOPERATIVE_WAIT_TIMEOUT
.
Důležité
V aplikaci Univerzální platforma Windows (UPW) nevolejte wait_for_multiple
vlákno ASTA, protože toto volání může blokovat aktuální vlákno a může způsobit, že aplikace přestane reagovat.