EventWaitHandle, AutoResetEvent, CountdownEvent e ManualResetEvent
Gli handle di attesa degli eventi consentono ai thread di sincronizzare le attività inviandosi segnali reciprocamente e rimanendo ciascuno in attesa dei segnali di un altro. Questi eventi di sincronizzazione sono basati sugli handle di attesa Win32 e possono essere suddivisi in due tipi: quelli che vengono reimpostati automaticamente alla ricezione di un segnale e quelli che devono essere reimpostati manualmente.
Gli handle di attesa degli eventi sono utili in molti degli stessi scenari di sincronizzazione della classe Monitor. In genere, risultano più facili da utilizzare rispetto ai metodi Monitor.Wait e Monitor.Pulse e forniscono un controllo più efficiente della segnalazione. Mentre i monitor sono locali al dominio applicazione, gli handle di attesa degli eventi possono essere anche utilizzati per sincronizzare le attività in più domini applicazioni o processi.
In questa sezione
EventWaitHandle
La classe EventWaitHandle può rappresentare eventi di reimpostazione automatica o manuale, nonché eventi locali o eventi di sistema denominati.AutoResetEvent
La classe AutoResetEvent deriva da EventWaitHandle e rappresenta un evento locale che viene reimpostato automaticamente.ManualResetEvent e ManualResetEventSlim
La classe ManualResetEvent deriva da EventWaitHandle e rappresenta un evento locale che deve essere reimpostato manualmente. La classe ManualResetEventSlim è una versione leggera e più veloce che è possibile utilizzare per gli eventi all'interno dello stesso processo.CountdownEvent
La classe CountdownEvent offre un metodo semplificato per implementare modelli di parallelismo di biforcazione e unione nel codice in cui vengono utilizzati handle di attesa.
Sezioni correlate
- Handle di attesa
La classe WaitHandle è la classe di base per le classi EventWaitHandle, Semaphore e Mutex. Contiene metodi statici quali SignalAndWait e WaitAll, utili quando vengono utilizzati tutti i tipi di handle di attesa.