Megosztás a következőn keresztül:


eseményosztály

Manuális visszaállítási esemény, amely kifejezetten tisztában van az egyidejűségi futtatókörnyezetgel.

Szemantika

class event;

Members

Nyilvános konstruktorok

Név Description
~event Destructor Elpusztít egy eseményt.

Nyilvános metódusok

Név Description
visszaállítási Alaphelyzetbe állítja az eseményt nem jelzett állapotra.
set Jelzi az eseményt.
várj Várakozás az esemény jelzésére.
wait_for_multiple Több esemény jelzésére vár.

Nyilvános állandók

Név Description
timeout_infinite Az érték azt jelzi, hogy a várakozás soha nem időtúllépést jelez.

Megjegyzések

További információ: Szinkronizálási adatstruktúrák.

Öröklési hierarchia

event

Requirements

Fejléc: concrt.h

Névtér: egyidejűség

esemény

Új eseményt hoz létre.

_CRTIMP event();

~esemény

Elpusztít egy eseményt.

~event();

Megjegyzések

A destruktor futtatásakor várhatóan nem várnak szálak az eseményre. Ha lehetővé teszi, hogy az esemény a még várakozó szálakkal együtt strukturáljon, nem definiált viselkedést eredményez.

alaphelyzet

Alaphelyzetbe állítja az eseményt nem jelzett állapotra.

void reset();

set

Jelzi az eseményt.

void set();

Megjegyzések

Az esemény jelzése tetszőleges számú, az eseményre várakozó környezet futtathatóvá válását okozhatja.

timeout_infinite

Az érték azt jelzi, hogy a várakozás soha nem időtúllépést jelez.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

wait

Várakozás az esemény jelzésére.

size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

Paraméterek

_Időkorlát
A várakozási idő túllépése előtt ezredmásodpercek számát jelzi. Az érték COOPERATIVE_TIMEOUT_INFINITE azt jelzi, hogy nincs időtúllépés.

Visszaadott érték

Ha a várakozás teljesült, a rendszer visszaadja az értéket 0 ; ellenkező esetben az az érték COOPERATIVE_WAIT_TIMEOUT , amely azt jelzi, hogy a várakozás az esemény jelzése nélkül időtúllépést jelzett.

Fontos

Univerzális Windows-platform (UWP) alkalmazásokban ne hívja wait meg az ASTA-szálat, mert ez a hívás blokkolhatja az aktuális szálat, és az alkalmazás nem válaszolhat.

wait_for_multiple

Több esemény jelzésére vár.

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

Paraméterek

_PPEvents
Események tömbje, amelyen várni kell. A tömbön belüli események számát a count paraméter jelzi.

gróf
A paraméterben megadott tömbben _PPEvents lévő események száma.

_FWaitAll
Ha az értékre truevan állítva, a paraméter azt határozza meg, hogy a paraméterben _PPEvents megadott tömb összes eseményének jelzést kell kapnia a várakozás teljesítéséhez. Ha az értékre falsevan állítva, az azt határozza meg, hogy a paraméterben megadott tömbön _PPEvents belüli bármely esemény megfelel a várakozásnak.

_Időkorlát
A várakozási idő túllépése előtt ezredmásodpercek számát jelzi. Az érték COOPERATIVE_TIMEOUT_INFINITE azt jelzi, hogy nincs időtúllépés.

Visszaadott érték

Ha a várakozás teljesült, a várakozási feltételt kielégítő paraméterben _PPEvents megadott tömb indexe; ellenkező esetben az az érték COOPERATIVE_WAIT_TIMEOUT , amely azt jelzi, hogy a várakozás a feltétel teljesülése nélkül időtúllépést jelzett.

Megjegyzések

Ha a paraméter _FWaitAll az értékre true van állítva, amely azt jelzi, hogy minden eseménynek jelzést kell kapnia a várakozás teljesítéséhez, a függvény által visszaadott index nem hordoz különösebb jelentőséget, kivéve azt a tényt, hogy nem az érték COOPERATIVE_WAIT_TIMEOUT.

Fontos

Univerzális Windows-platform (UWP) alkalmazásokban ne hívja wait_for_multiple meg az ASTA-szálat, mert ez a hívás blokkolhatja az aktuális szálat, és az alkalmazás nem válaszolhat.

Lásd még

egyidejűség névtere