Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.