Compartilhar via


Exemplo de tecnologia de sincronização de leitor-gravador

Esse exemplo demonstra o uso do ReaderWriterLock classe de sincronização de thread. A funcionalidade do ReaderWriterLock tipo permite que o desenvolvedor escreva código que impõe o acesso exclusivo a um recurso compartilhado ao mesmo tempo um thread é escrita ou modificando o recurso, mas permite acesso não-exclusivo ao ler ou consultar o recurso.

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. Abrir um janela do aviso de comando e navegar até um de subpastas específicas do linguagem para a amostra.

  2. Tipo de MSBuild ReaderWriterSynchronizationCS.sln or MSBuild ReaderWriterSynchronizationVB.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 de ReaderWriterSynchronizationCS.sln or ReaderWriterSynchronizationVB.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 ReaderWriter.exe na linha de comando.

    Observação:

    Este exemplo cria um aplicativo de console.Você deve iniciá-la no aviso de comando para exibir sua saída.Ao executar o exemplo, observe que o Iniciar gravação and Parar gravação saída para cada gravador ocorre sucessivamente.Isso ocorre porque os gravadores Isenção acesso exclusivo ao recurso, ao contrário dos leitores.

Comentários

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

Os marcadores a seguintes faça uma breve descrição de classes e tecnologias usadas por este exemplo.

  • Sincronização de Segmento

ReaderWriterLockUsado para proteger um recurso lógico que é implementado sistema autônomo uma telefonar para Sleep. Segmentos usando o ReaderWriterLock tipo pode Isenção o bloquear de duas maneiras diferentes. Primeiro, um thread pode conter um bloquear de leitura, que é não-exclusiva e permitirá que outros segmentos obter um bloquear de leitura para a classe.Segundo, um thread pode solicitar um bloquear de gravar, que é exclusivo e não é concedido até mantido atualmente leitura e bloqueios de gravar são lançados.

  • 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.

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