ManualResetEvent e ManualResetEventSlimManualResetEvent and ManualResetEventSlim

La classe System.Threading.ManualResetEvent rappresenta un evento di handle di attesa locale che deve essere reimpostato manualmente dopo essere stato segnalato.The System.Threading.ManualResetEvent class represents a local wait handle event that must be reset manually after it is signaled. Questa classe rappresenta un caso speciale della relativa classe di base, System.Threading.EventWaitHandle.This class represents a special case of its base class, System.Threading.EventWaitHandle. Vedere la documentazione concettuale EventWaitHandle per l'uso e le caratteristiche degli eventi di impostazione del manuale.See the EventWaitHandle conceptual documentation for the use and features of manual reset events.

Un oggetto ManualResetEvent rimane segnalato finché non viene chiamato il metodo EventWaitHandle.Reset.A ManualResetEvent object remains signaled until its EventWaitHandle.Reset method is called. Qualsiasi numero di thread in attesa, o di thread che attende l'evento dopo che è stato segnalato, può essere rilasciato mentre viene segnalato lo stato dell'oggetto.Any number of waiting threads, or threads that wait on the event after it has been signaled, can be released while the object's state is signaled. ManualResetEvent corrisponde a una chiamata Win32 a CreateEvent, che specifica true per l'argomento bManualReset.ManualResetEvent corresponds to a Win32 CreateEvent call, specifying true for the bManualReset argument.

In .NET Framework 4.NET Framework 4 è possibile usare la classe System.Threading.ManualResetEventSlim per ottenere prestazioni migliori quando si prevedono tempi di attesa molto brevi e quando l'evento non supera un limite di processo.In the .NET Framework 4.NET Framework 4, you can use the System.Threading.ManualResetEventSlim class for better performance when wait times are expected to be very short, and when the event does not cross a process boundary. ManualResetEventSlim usa una rotazione per un breve periodo di tempo mentre si attende che l'evento venga segnalato.ManualResetEventSlim uses busy spinning for a short time while it waits for the event to become signaled. Quando i tempi di attesa sono brevi, la rotazione può essere molto meno costosa rispetto all'attesa tramite handle di attesa.When wait times are short, spinning can be much less expensive than waiting by using wait handles. Se tuttavia l'evento non viene segnalato entro un determinato periodo di tempo, ManualResetEventSlim ricorre a una normale attesa di handle dell'evento.However, if the event does not become signaled within a certain period of time, ManualResetEventSlim resorts to a regular event handle wait.

Vedere ancheSee Also

ThreadingThreading
Threading Objects and Features (Oggetti e funzionalità del threading)Threading Objects and Features
Handle di attesaWait Handles
AutoResetEventAutoResetEvent
SpinWaitSpinWait
Semaphore e SemaphoreSlimSemaphore and SemaphoreSlim