2010-01-19 3 views
12

In C# was ist der Unterschied zwischen manuellem Reset-Ereignis, Autorese-Ereignis. Auch wann sollte man das selbe benutzen. Was ist der Unterschied zwischen dem Setzen von autoresetevent auf true oder false?Ereignis des manuellen Zurücksetzens, Ereignis des automatischen Zurücksetzens

+0

möglich Duplikat von [Was ist der Unterschied zwischen ManualResetEvent und AutoResetEvent in .net?] (Http://stackoverflow.com/questions/153877/what-is-the-difference-between-manualresetevent-and-autoresetevent-in -net) – Sung

+1

Hier ist eine tolle Erklärung mit Bildern :) http://multithreads.blogspot.de/2007/09/eventwaithandler-autoresetevent-and.html – VladL

Antwort

16

Für die ManualResetEvent, sobald Sie Set() genannt haben, haben Sie bewusst Reset() nennen es in einem nicht signalisierten Zustand zurück zu setzen, so dass auf Anrufe WaitOne() blockiert.

Dies ist für AutoResetEvent nicht erforderlich. Die Dokumentation ist ziemlich gut auf MSDN für ManualResetEvent und AutoResetEvent.

+0

Beachten Sie auch, dass AutoResetEvent.Set() nur einen wartenden Thread freigeben, während ManualResetEvent.Set() gibt alle wartenden Threads frei und blockiert nicht mehr (bis Sie Reset aufrufen). –

Verwandte Themen