Bloqueios de leitor-gravador.

O ReaderWriterLockSlim classe permite que vários threads simultaneamente, um recurso de leitura, mas requer um segmento para aguardar um bloqueio exclusivo para gravar o recurso.

Você pode usar um ReaderWriterLockSlim em seu aplicativo para fornecer sincronização cooperativa entre os threads que acessar um recurso compartilhado. Os bloqueios são executados na ReaderWriterLockSlim próprio.

Como com qualquer mecanismo de sincronização de thread, você deve garantir que nenhum thread ignora o bloqueio que é fornecido por ReaderWriterLockSlim. Uma maneira de garantir isso é criar uma classe que encapsula um recurso compartilhado. Essa classe forneceria membros que acessar o recurso compartilhado a particular e que use um private ReaderWriterLockSlim para sincronização. Por exemplo, consulte o exemplo de código para o ReaderWriterLockSlim classe. ReaderWriterLockSlimé eficiente para ser usado para sincronizar objetos individuais.

Estruture seu aplicativo para minimizar a duração de leitura e operações de gravação. As operações de gravação longa afetam diretamente throughput porque o bloqueio de gravação é exclusivo. Longo gravadores de espera do bloco de operações de leitura e se pelo menos um segmento está aguardando o acesso de gravação, os threads que solicitam acesso de leitura serão bloqueados também.

Observação

O .NET Framework tem dois bloqueios de leitor-gravador, ReaderWriterLockSlim e ReaderWriterLock.ReaderWriterLockSlimé recomendado para todos os novos desenvolvimentos.ReaderWriterLockSlimé semelhante a ReaderWriterLock, mas ele simplificou regras para a recursão e para atualizar e rebaixamento do estado de bloqueio.ReaderWriterLockSlimevita muitos casos de deadlock potencial.Além disso, o desempenho do ReaderWriterLockSlim é significativamente melhor do que ReaderWriterLock.

Consulte também

Referência

ReaderWriterLockSlim

ReaderWriterLock

Outros recursos

Threads gerenciadas

Threading objetos e recursos