Identificadores de Espera
O WaitHandle classe encapsula os identificadores de sincronização do Win32 e é usado para representar todos os objetos de sincronização no runtime que permitir que várias operações de espera. Para obter uma comparação de identificadores de espera com outros objetos de sincronização, consulte Visão geral dos primitivos de sincronização.
O WaitHandle é a própria classe abstrata. Além de classes derivadas, ela tem um número de métodos estáticos que permitem aguardando vários eventos. As classes derivadas de WaitHandle incluem o seguinte:
O Mutex classe. Consulte Exclusões mútuas.
O EventWaitHandle classe e suas classes derivadas, AutoResetEvent e ManualResetEvent. O EventWaitHandle classe é nova na.NET Framework versão 2.0. Consulte EventWaitHandle, AutoResetEvent, CountdownEvent e ManualResetEvent.
O classe deSemaphore , novo na.NET Framework versão 2.0. Consulte Semáforo e SemaphoreSlim.
Porque o WaitHandle classe deriva de MarshalByRefObject, essas classes podem ser usadas para sincronizar as atividades de segmentos entre limites de domínio de aplicativo.
Threads podem bloquear em um identificador de espera individuais chamando o método de instância WaitOne. Além disso, o WaitHandle classe tenha sobrecarregado métodos estáticos para aguardar até que todo um conjunto de identificadores de espera especificado tiver sido assinalado (WaitAll), ou aguardar até que qualquer um de um conjunto de identificadores de espera especificado tiver sido assinalado (WaitAny). As sobrecargas dos métodos a seguir fornecem os intervalos de tempo limite para abandonando a espera e a oportunidade de sair de um contexto de sincronização antes de entrar em espera, permitindo que outros segmentos usar o contexto de sincronização.
No.NET Framework versão 2.0, identificadores de espera também têm estática SignalAndWait método, que permite que um segmento para o sinal de um identificador de espera e imediatamente esperar em outro, como uma operação atômica.
As classes derivadas de WaitHandle diferem em seus afinidade de thread. Identificadores de espera do evento (EventWaitHandle, AutoResetEvent, e ManualResetEvent) e semáforos não têm afinidade de thread. Qualquer segmento pode sinalizar um identificador de espera do evento ou um semáforo. Por outro lado, mutexes, ter afinidade de thread. O segmento que possui um mutex deve liberá-lo; uma exceção é lançada se um thread chama o ReleaseMutex método em que ele não possui o mutex.
Consulte também
Conceitos
Outros recursos
EventWaitHandle, AutoResetEvent, CountdownEvent e ManualResetEvent