Sdílet prostřednictvím


event – třída

Událost ručního resetování, která explicitně ví o concurrency Runtime.

Syntaxe

class event;

Členové

Veřejné konstruktory

Jméno popis
~destruktor událostí Zničí událost.

Veřejné metody

Jméno popis
Obnovit 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

Jméno 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

Obor názvů: 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

_Časový limit
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.

Vrácená 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í.

_Časový limit
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.

Vrácená 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.

Viz také

concurrency – obor názvů