Exemplo de tecnologia de sincronização do monitor
Este exemplo demonstra como usar a classe Monitor para thread sincronização.O tipo de monitor estático funções são usadas para garantir acesso mutuamente exclusivo para um bloco de código protegido.
Comentários de revisão nos arquivos de fonte código e compilação.proj para obter mais informações sobre sincronização de threads e a classe Monitor.
Para obter mais informações sobre como usar os exemplos, consulte os seguintes tópicos:
Para compilação a amostra usando o aviso de comando
Abrir um janela do aviso de comando e navegar até um de subpastas específicas do linguagem para a amostra.
Tipo de MSBuild MonitorSynchronizationCS.sln or MSBuild MonitorSynchronizationVB.sln, dependendo de sua escolha de linguagem de programação, na linha de comando.
Para compilação a amostra usando o Visual Studio
em aberto Windows Explorer e navegar até um de subpastas específicas do linguagem para a amostra.
clicar duas vezes no ícone de MonitorSynchronizationCS.sln or MonitorSynchronizationVB.sln, dependendo de sua escolha de linguagem, de programação para em em aberto o arquivo no Visual Studio.
Sobre o Compilação menu, clicar Criar solução.
Para executar este exemplo
navegar até o diretório que contém o novo executável, usando o aviso de comando.
Tipo de Monitor.exe na linha de comando.
Observação: |
---|
Este exemplo cria um aplicativo de console.Você deve iniciá-lo usando o aviso de comando para exibir sua saída.Quando a execução do exemplo, observe que a saída "Writing iniciar" e "Stop texto" para cada gravador ocorre sucessivamente sem sobreposição de threads com uma identificação diferente.Isso ocorre porque os threads mantêm acesso exclusivo ao recurso. |
Comentários
Os marcadores a seguintes faça uma breve descrição de classes e tecnologias usadas por este exemplo.
Sincronização de Segmento
Monitor Fornece funções estáticas para entrando e saindo de um bloco de código protegido. Você não pode criar uma instância do Monitor Digite. Em vez disso, você passa para seus métodos estático uma referência a qualquer tipo derivado de objeto que você deseja usar sistema autônomo um único nó de sincronização.
Observação: Visual Basic e translation from VPE for Csharp implementarem especial palavras-chave para usufruir o Monitor métodos estático do tipo. Translation from VPE for Csharp usa o lock palavra-chave e Visual Basic usa o SyncLock palavra-chave.
AutoResetEventSegmento principal dos exemplos espera por um AutoResetEvent objeto até que ela seja conjunto, que indica que concluíram a última das funções assíncrono fazendo seu trabalho.
Interlocked O exemplo usa o estático Decrement método assincronamente acessar uma variável de contador 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. O 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 Para usar.