Partilhar via


Identificadores de Espera

The WaitHandle classe encapsula alças de sincronização do Win32 e é usado para representar todos os objetos de sincronização no tempo de execução que permitem 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.

The WaitHandle classe em si é abstrato. Além de classes derivadas, ela tem um número de métodos estático que permitem aguardando vários eventos.Classes derivadas de WaitHandle a seguir:

Porque o WaitHandle classe deriva de MarshalByRefObject, essas classes podem ser usadas para sincronizar as atividades de threads nos limites do domínio do aplicativo.

Segmentos podem bloquear em um identificador de espera individuais, chamando o método de instância WaitOne. Além disso, a WaitHandle classe tenha sobrecarregado métodos estático para aguardar até que todo um conjunto especificado de espera alças tem sido sinalizado)WaitAll), ou aguardar até que qualquer um de um conjunto de identificadores de espera especificado tiver sido sinalizado ()WaitAny). Sobrecargas de um desses métodos fornecem intervalos de tempo limite para abandonando a espera e a oportunidade para sair de um contexto de sincronização antes de entrar em espera, permitindo que outros segmentos usar o contexto de sincronização.

O .NET estrutura versão 2.0, identificadores de espera também têm o estático SignalAndWait método, que permite que um thread sinalizar uma espera manipular e aguarde imediatamente em outro, sistema autônomo uma operação atômica.

As classes derivadas de WaitHandle diferem em sua afinidade de thread. Identificadores de espera do evento (EventWaitHandle, AutoResetEvent, e ManualResetEvent) e semáforos não têm thread afinidade. Qualquer thread pode sinalizar um identificador de espera do evento ou um sinal.Exclusões mútuas, por Outros lado, são necessário afinidade de segmento.O segmento que possui um mutex deve liberá-lo; uma exceção é lançada se um thread chama o ReleaseMutex método em um mutex não possui.

Consulte também

Conceitos

Exclusões mútuas

Semáforos

Outros recursos

Threads gerenciadas

Recursos e objetos de Threading

EventWaitHandle AutoResetEvent e ManualResetEvent