Compartilhar via


Exemplo de tecnologia de sincronização de espera

Este exemplo demonstra como usar o WaitHandle classe de sincronização de segmentos. O tipo derivado de WaitHandle Mutex é usado para impor mutuamente acesso a um bloco de código protegido.

Para obter mais informações sobre como usar os exemplos, consulte os seguintes tópicos:

Download sample

Para compilação a amostra usando o aviso de comando

  1. Aberto o janela do aviso de comando e navegar até um de subpastas específicas do linguagem para a amostra.

  2. Tipo de MSBuild WaitSynchronizationCS.sln or MSBuild WaitSynchronizationVB.sln, dependendo de sua escolha de linguagem de programação, na linha de comando.

Para compilação a amostra usando o Visual Studio

  1. em aberto Windows Explorer e navegar até um de subpastas específicas do linguagem para a amostra.

  2. clicar duas vezes no ícone para WaitSynchronizationCS.sln ou WaitSynchronizationVB.sln, dependendo de sua escolha de linguagem, de programação para em em aberto o arquivo no Visual Studio.

  3. Sobre o Compilação menu, clicar Criar solução.

Para executar este exemplo

  1. navegar até o diretório que contém o novo arquivo executável.

  2. Tipo de Mutex.exe na linha de comando.

    Observação:

    Este exemplo cria um aplicativo de console.Você deve iniciá-la em uma janela de console para exibir sua saída.

Comentários

Este exemplo filas até cinco chamadas de método assíncrono.Cada método, em seguida, aguarda para proprietários do recurso, gravações para o console param e, em seguida, grava no console de uma segunda vez.

Os marcadores a seguintes descrevem brevemente as tecnologias e classes usadas por este exemplo:

  • Sincronização de Segmento

    • Mutex Proporciona exclusão mútua para thread sincronização.

    • AutoResetEvent Segmento principal dos exemplos espera por um AutoResetEvent até que ela seja conjunto. Isso indica que concluíram a última das funções assíncrono fazendo seu trabalho.

    • WaitHandle O WaitHandle classe é a base de qual ambos Mutex e AutoResetEvent classes (entre outros) são derivados. Esse tipo implementa métodos "espera"para os diversos tipos derivados ir"sinalizado".

    • Interlocked O exemplo usa o estático Decrement método para acessar uma variável de contador de forma assíncrona para indicar quando a AutoResetEvent deve ser definido.

  • Threading

    • ThreadPool Ao escrever código gerenciado, é recomendável que, sempre que possível, os desenvolvedores usar o QueueUserWorkItem método para implementar chamadas de método assíncrono. Este exemplo usa essa abordagem para executar o código que concorre para um recurso lógico.
  • Delegados

    • WaitCallback Usado para criar um método de retorno de chamada de fortemente tipado para o ThreadPool classe a ser usada.

Para obter mais informações sobre threading e sincronização, consulte os comentários nos arquivos de código e compilação.proj de fonte.

Consulte também

Conceitos

Segmentos e Threading

Referência

AutoResetEvent

Delegate

Interlocked

Mutex

System.Threading

ThreadPool

WaitCallback

WaitHandle

Outros recursos

Segmentação de objetos e recursos