událost třída

Událost manuálního obnovení, která je explicitně kompatibilní s 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 nesignalizovaného stavu.
nastavit Signalizuje událost.
Počkej Čeká, až bude událost signalizována.
wait_for_multiple Čeká na signalizaci více událostí.

Veřejné konstanty

Název Popis
timeout_infinite Hodnota označující, že čekání nikdy nevyprší časový limit.

Poznámky

Další informace naleznete v tématu Synchronizace datových struktur.

Hierarchie dědičnosti

event

Požadavky

Hlavička: concrt.h

Obor názvů: souběžnost

událost

Vytvoří novou událost.

_CRTIMP event();

~událost

Zničí událost.

~event();

Poznámky

Očekává se, že při spuštění destruktoru na událost nečekají žádná vlákna. Povolení destrukce události, pokud na ni stále čekají vlákna, může vést k nedefinovanému chování.

obnovit

Obnoví událost do nesignalizovaného stavu.

void reset();

set

Signalizuje událost.

void set();

Poznámky

Signalizace události může způsobit, že libovolný počet kontextů čekajících na událost se stane spustitelnými.

timeout_infinite

Hodnota označující, že čekání by nikdy nemělo vypršet časově.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

počkejte

Čeká na signál označující událost.

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 Universal Windows Platform (UWP) nevolejte wait na 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á na signalizaci 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 signalizovány, aby mohla být čekání splněna. Pokud je hodnota nastavena na false, určuje, že jakákoli událost v poli zadaném parametrem _PPEvents, která se stane signalizovanou, splní podmínku č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 Universal Windows Platform (UWP) nevolejte wait_for_multiple na vlákně ASTA, protože toto volání může blokovat aktuální vlákno a může způsobit, že aplikace může přestat reagovat.

Viz také

concurrency – obor názvů