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 true
gibt 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 false
festgelegt 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.