Compartilhar via


AsyncReaderWriterResourceLock<TMoniker,TResource> Classe

Definição

Um bloqueio sem bloqueio que permite acesso simultâneo, acesso exclusivo ou simultâneo com capacidade de atualização para acesso exclusivo, fazendo concessões especiais para recursos que devem ser preparados para acesso simultâneo ou exclusivo.

generic <typename TMoniker, typename TResource>
 where TResource : classpublic ref class AsyncReaderWriterResourceLock abstract : Microsoft::VisualStudio::Threading::AsyncReaderWriterLock
public abstract class AsyncReaderWriterResourceLock<TMoniker,TResource> : Microsoft.VisualStudio.Threading.AsyncReaderWriterLock where TResource : class
type AsyncReaderWriterResourceLock<'Moniker, 'Resource (requires 'Resource : null)> = class
    inherit AsyncReaderWriterLock
Public MustInherit Class AsyncReaderWriterResourceLock(Of TMoniker, TResource)
Inherits AsyncReaderWriterLock

Parâmetros de tipo

TMoniker

O tipo do moniker que identifica um recurso.

TResource

O tipo de recurso emitido para acesso por esse bloqueio.

Herança
AsyncReaderWriterResourceLock<TMoniker,TResource>

Construtores

AsyncReaderWriterResourceLock<TMoniker,TResource>()

Inicializa uma nova instância da classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

Inicializa uma nova instância da classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

Inicializa uma nova instância da classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

Propriedades

AmbientLock

Obtém o bloqueio mantido pelo contexto de execução do chamador.

(Herdado de AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

Obtém um valor que indica se o thread atual tem permissão para manter um bloqueio ativo.

(Herdado de AsyncReaderWriterLock)
CaptureDiagnostics

Obtém ou define um valor que indica se recursos adicionais devem ser gastos para coletar informações que seriam úteis no diagnóstico de deadlocks etc.

(Herdado de AsyncReaderWriterLock)
Completion

Obtém uma tarefa cuja conclusão sinaliza que esse bloqueio não emitirá mais bloqueios.

(Herdado de AsyncReaderWriterLock)
DeadlockCheckTimeout

Obtém um atraso de tempo para marcar se bloqueio de gravador pendente e bloqueios de leitor formam um deadlock.

(Herdado de AsyncReaderWriterLock)
IsAnyLockHeld

Obtém um valor que indica se qualquer tipo de bloqueio é mantido pelo chamador e pode ser usado imediatamente dado o contexto do chamador.

(Herdado de AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Obtém um valor que indica se qualquer tipo de bloqueio é mantido pelo chamador sem levar em conta a compatibilidade de bloqueio do contexto do chamador.

(Herdado de AsyncReaderWriterLock)
IsPassiveReadLockHeld

Obtém um valor que indica se um bloqueio de leitura é mantido pelo chamador sem levar em conta a compatibilidade de bloqueio do contexto do chamador.

(Herdado de AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

Obtém um valor que indica se um bloqueio de leitura atualizável é mantido pelo chamador sem levar em conta a compatibilidade de bloqueio do contexto do chamador.

(Herdado de AsyncReaderWriterLock)
IsPassiveWriteLockHeld

Obtém um valor que indica se um bloqueio de gravação é mantido pelo chamador sem considerar a compatibilidade de bloqueio do contexto do chamador.

(Herdado de AsyncReaderWriterLock)
IsReadLockHeld

Obtém um valor que indica se o chamador mantém um bloqueio de leitura.

(Herdado de AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

Obtém um valor que indica se SynchronizationContext atual é um que não é compatível com esse bloqueio.

(Herdado de AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

Obtém um valor que indica se o chamador mantém um bloqueio de leitura atualizável.

(Herdado de AsyncReaderWriterLock)
IsWriteLockHeld

Obtém um valor que indica se o chamador mantém um bloqueio de gravação.

(Herdado de AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

Obtém um SynchronizationContext que, quando aplicado, suprime qualquer bomba de mensagem que possa ser executada durante blocos síncronos do thread de chamada.

(Herdado de AsyncReaderWriterLock)
SyncObject

Obtém o objeto usado para sincronizar o acesso aos campos dessa instância.

(Herdado de AsyncReaderWriterLock)

Métodos

Complete()

Faz com que novas solicitações de bloqueio de nível superior sejam rejeitadas e a tarefa faça a Completion transição para um estado concluído depois que quaisquer bloqueios emitidos forem liberados.

(Herdado de AsyncReaderWriterLock)
Dispose()

Um bloqueio sem bloqueio que permite acesso simultâneo, acesso exclusivo ou simultâneo com capacidade de atualização para acesso exclusivo, fazendo concessões especiais para recursos que devem ser preparados para acesso simultâneo ou exclusivo.

(Herdado de AsyncReaderWriterLock)
Dispose(Boolean)

Descarta recursos gerenciados e não gerenciados mantidos por essa instância.

(Herdado de AsyncReaderWriterLock)
GetAggregateLockFlags()

Retorna a agregação dos sinalizadores de bloqueio para todos os bloqueios aninhados.

GetHangReport()

Contribui com dados para um relatório de travamento.

(Herdado de AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

Recupera o recurso com o moniker especificado.

GetTaskSchedulerForReadLockRequest()

Obtenha o agendador de tarefas para executar a continuação quando o bloqueio for adquirido. AsyncReaderWriterLock usa um especial SynchronizationContext para lidar com bloqueios exclusivos e ignorará o agendador de tarefas fornecido, portanto, isso só é usado em um cenário de bloqueio de leitura. Esse método é chamado dentro do contexto de execução para aguardar o bloqueio de leitura, para que ele possa ser pego TaskScheduler com base no contexto de execução atual. Observação: o agendador de tarefas só é usado quando o bloqueio é emitido posteriormente. Se o bloqueio for emitido imediatamente quando CanCurrentThreadHoldActiveLock retornar true, ele será ignorado.

(Herdado de AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Obtém um agendador de tarefas para preparar um recurso para acesso simultâneo.

HideLocks()

Impede o uso ou a visibilidade dos bloqueios do chamador até que o valor retornado seja descartado.

(Herdado de AsyncReaderWriterLock)
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle)

Verifica se os sinalizadores agregados de todos os bloqueios na pilha de bloqueio atendem aos sinalizadores especificados.

(Herdado de AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

Acionado quando o último bloqueio de gravação está prestes a ser liberado.

(Herdado de AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

Acionado quando qualquer bloqueio está sendo liberado.

(Herdado de AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

Registra um retorno de chamada a ser invocado quando o bloqueio de gravação mantido pelo chamador está prestes a ser finalmente liberado (bloqueio de gravação mais externo).

(Herdado de AsyncReaderWriterLock)
OnCriticalFailure(Exception)

Invocado quando o bloqueio detecta um erro interno ou padrão de uso ilegal que indica uma falha grave que deve ser imediatamente relatada ao aplicativo e/ou derrubar o processo para evitar travamentos ou corrupção de dados.

(Herdado de AsyncReaderWriterLock)
OnCriticalFailure(String)

Invocado quando o bloqueio detecta um erro interno ou padrão de uso ilegal que indica uma falha grave que deve ser imediatamente relatada ao aplicativo e/ou derrubar o processo para evitar travamentos ou corrupção de dados.

(Herdado de AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

Invocado depois que um bloqueio exclusivo é liberado, mas antes que alguém tenha a chance de entrar no bloqueio.

OnUpgradeableReadLockReleased()

Invocado quando um bloqueio de leitura atualizável de nível superior é liberado, não deixando nenhum bloqueio restante (gravação).

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

Prepara um recurso para acesso simultâneo.

PrepareResourceForExclusiveAccessAsync(TResource, AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Prepara um recurso para acesso por um thread.

ReadLockAsync(CancellationToken)

Obtém um bloqueio de leitura, aguardando assincronamente o bloqueio caso ele não esteja disponível imediatamente.

SetAllResourcesToUnknownState()

Define todos os recursos a serem considerados em um estado desconhecido.

SetResourceAsAccessed(Func<TResource,Object,Boolean>, Object)

Marca todos os recursos carregados como tendo sido recuperados sob um bloqueio se eles atenderem a algum predicado.

SetResourceAsAccessed(TResource)

Marca um recurso como tendo sido recuperado em um bloqueio.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Obtém um bloqueio de leitura, aguardando assincronamente o bloqueio caso ele não esteja disponível imediatamente.

(Herdado de AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Obtém um bloqueio de leitura, aguardando assincronamente o bloqueio caso ele não esteja disponível imediatamente.

UpgradeableReadLockAsync(CancellationToken)

Obtém um bloqueio de leitura atualizável, aguardando assíncronamente o bloqueio se ele não estiver disponível imediatamente.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Obtém um bloqueio de gravação, aguardando assincronamente o bloqueio caso ele não esteja disponível imediatamente.

(Herdado de AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Obtém um bloqueio de gravação, aguardando assincronamente o bloqueio caso ele não esteja disponível imediatamente.

WriteLockAsync(CancellationToken)

Obtém um bloqueio de gravação, aguardando assincronamente o bloqueio caso ele não esteja disponível imediatamente.

Implantações explícitas de interface

IHangReportContributor.GetHangReport()

Contribui com dados para um relatório de travamento.

(Herdado de AsyncReaderWriterLock)

Aplica-se a

Acesso thread-safe

Esse tipo é thread-safe para todos os membros.