Freigeben über


event-Klasse

Ein Ereignis für manuelles Zurücksetzen, das explizit die Concurrency Runtime beachtet.

Syntax

class event;

Member

Öffentliche Konstruktoren

Name Beschreibung
~event Destructor Zerstört ein Ereignis.

Öffentliche Methoden

Name Beschreibung
reset Setzt das Ereignis auf einen nicht signalisierten Zustand zurück.
set Signalisiert das Ereignis.
wait Wartet, bis das Ereignis signalisiert wird.
wait_for_multiple Wartet, bis mehrere Ereignisse signalisiert werden.

Öffentliche Konstanten

Name Beschreibung
timeout_infinite Ein Wert, der angibt, dass ein Wartevorgang nie durch einen Timeout beendet werden sollte.

Hinweise

Weitere Informationen finden Sie unter "Synchronisierungsdatenstrukturen".

Vererbungshierarchie

event

Anforderungen

Kopfzeile: concrt.h

Namespace: Parallelität

event

Erstellt ein neues Ereignis.

_CRTIMP event();

Hinweise

~Ereignis

Zerstört ein Ereignis.

~event();

Hinweise

Es wird erwartet, dass keine Threads auf das Ereignis warten, wenn der Destruktor ausgeführt wird. Wenn das Ereignis zerstört wird, während Threads auf das Ereignis warten, kann dies zu einem nicht definiertem Verhalten führen.

reset

Setzt das Ereignis auf einen nicht signalisierten Zustand zurück.

void reset();

set

Signalisiert das Ereignis.

void set();

Hinweise

Das Signalisieren des Ereignisses kann möglicherweise dazu führen, dass eine beliebige Anzahl von Kontexten, die auf das Ereignis warten, ausführbar werden.

timeout_infinite

Ein Wert, der angibt, dass ein Wartevorgang nie durch einen Timeout beendet werden sollte.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

wait

Wartet, bis das Ereignis signalisiert wird.

size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

Parameter

_Zeitüberschreitung
Gibt die Anzahl von Millisekunden an, bevor die Wartezeiten ablaufen. Der Wert COOPERATIVE_TIMEOUT_INFINITE gibt an, dass kein Timeout vorhanden ist.

Rückgabewert

Wenn der Wartezustand erfüllt wurde, wird der Wert 0 zurückgegeben. Andernfalls gibt der Wert COOPERATIVE_WAIT_TIMEOUT an, dass der Wartezustand durch einen Timeout beendet wurde, ohne dass das Ereignis signalisiert wurde.

Wichtig

Rufen Sie in einer Universelle Windows-Plattform-App (UWP) nicht den ASTA-Thread aufwait, da dieser Aufruf den aktuellen Thread blockieren kann und die App nicht mehr reagiert.

wait_for_multiple

Wartet, bis mehrere Ereignisse signalisiert werden.

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

Parameter

_PPEvents
Ein Array von Ereignissen, auf die gewartet werden soll. Die Anzahl der Ereignisse im Array wird durch den count-Parameter angegeben.

count
Die Anzahl von Ereignissen innerhalb des im _PPEvents-Parameter angegebenen Arrays.

_FWaitAll
Bei Festlegung auf den Wert truegibt der Parameter an, dass alle Ereignisse innerhalb des arrays, das _PPEvents im Parameter angegeben ist, signalisiert werden müssen, um die Wartezeit zu erfüllen. Wenn dieser Wert auf den Wert falsefestgelegt ist, gibt es an, dass jedes Ereignis innerhalb des arrays, das in dem _PPEvents Parameter angegeben wird, der signalisiert wird, die Wartezeit erfüllt.

_Zeitüberschreitung
Gibt die Anzahl von Millisekunden an, bevor die Wartezeiten ablaufen. Der Wert COOPERATIVE_TIMEOUT_INFINITE gibt an, dass kein Timeout vorhanden ist.

Rückgabewert

Wenn die Anforderungen des Wartevorgangs erfüllt wurden, ist dies der Index innerhalb des Arrays, das im _PPEvents-Parameter angegeben wurde und die Wartebedingung erfüllt hat. Andernfalls gibt der Wert COOPERATIVE_WAIT_TIMEOUT an, dass das Timeout für den Wartevorgang abgelaufen ist, ohne dass die Bedingung erfüllt wurde.

Hinweise

Wenn der Parameter _FWaitAll auf den Wert true festgelegt wurde, um anzugeben, dass alle Ereignisse signalisiert werden müssen, um den Wartevorgang zu beenden, hat der von der Funktion zurückgegebene Index keine andere besondere Bedeutung außer der Tatsache, dass er nicht den Wert COOPERATIVE_WAIT_TIMEOUT darstellt.

Wichtig

Rufen Sie in einer Universelle Windows-Plattform-App (UWP) nicht den ASTA-Thread aufwait_for_multiple, da dieser Aufruf den aktuellen Thread blockieren kann und die App nicht mehr reagiert.

Siehe auch

Concurrency-Namespace