Freigeben über


ManualResetEvent und ManualResetEventSlim

Die System.Threading.ManualResetEvent-Klasse stellt ein lokales WaitHandle-Ereignis dar, das nach seiner Auslösung manuell zurückgesetzt werden muss. Diese Klasse stellt einen Sonderfall ihrer Basisklasse System.Threading.EventWaitHandle dar. Weitere Informationen zur Verwendung und den Features manueller Reset-Ereignisse finden Sie in der konzeptionellen Dokumentation über EventWaitHandle.

Ein ManualResetEvent-Objekt bleibt bis zum Aufruf der EventWaitHandle.Reset-Methode aktiviert. Während der Zustand des Objekts signalisiert wird, können beliebig viele wartende Threads oder Threads, die nach der Signalisierung auf das Ereignis warten, freigegeben werden. ManualResetEvent entspricht einem Win32-CreateEvent-Aufruf, bei dem true als bManualReset-Argument angegeben wird.

In .NET Framework, Version 4 können Sie die Leistung mit der System.Threading.ManualResetEventSlim-Klasse verbessern, wenn sehr kurze Wartezeiten erwartet werden und das Ereignis nicht prozessübergreifend ist. Beim Warten auf das Signalisieren des Ereignisses verwendet ManualResetEventSlim vorübergehend andauernde Spinvorgänge. Bei kurzen Wartezeiten können Spinvorgänge sehr viel weniger ressourcenintensiv sein als das Warten mit Wait-Handles. Wenn das Ereignis jedoch nicht innerhalb eines bestimmten Zeitraums signalisiert wird, greift ManualResetEventSlim auf einen normalen Wartevorgang mit Ereignishandle zurück.

Siehe auch

Konzepte

Wait-Handles

AutoResetEvent

Semaphore und SemaphoreSlim

Weitere Ressourcen

Verwaltetes Threading

Threadingobjekte und -features

SpinWait