Share via


AsyncReaderWriterResourceLock<TMoniker,TResource> Clase

Definición

Bloqueo sin bloqueos que permite el acceso simultáneo, el acceso exclusivo o simultáneo con capacidad de actualización al acceso exclusivo, creando los permisos especiales para recursos que deben estar preparados para el acceso simultáneo o 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

Tipo del moniker que identifica un recurso.

TResource

Tipo de recurso emitido para el acceso mediante este bloqueo.

Herencia
AsyncReaderWriterResourceLock<TMoniker,TResource>

Constructores

AsyncReaderWriterResourceLock<TMoniker,TResource>()

Inicializa una nueva instancia de la clase AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

Inicializa una nueva instancia de la clase AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

Inicializa una nueva instancia de la clase AsyncReaderWriterResourceLock<TMoniker,TResource>.

Propiedades

AmbientLock

Obtiene el bloqueo retenido por el contexto de ejecución del llamador.

(Heredado de AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

Obtiene un valor que indica si el subproceso actual puede contener un bloqueo activo.

(Heredado de AsyncReaderWriterLock)
CaptureDiagnostics

Obtiene o establece un valor que indica si se deben gastar recursos adicionales para recopilar información que sería útil para diagnosticar interbloqueos, etc.

(Heredado de AsyncReaderWriterLock)
Completion

Obtiene una tarea cuya finalización indica que este bloqueo ya no emitirá bloqueos.

(Heredado de AsyncReaderWriterLock)
DeadlockCheckTimeout

Obtiene un retraso de tiempo para comprobar si el bloqueo del escritor pendiente y los bloqueos del lector forman un interbloqueo.

(Heredado de AsyncReaderWriterLock)
IsAnyLockHeld

Obtiene un valor que indica si el autor de la llamada mantiene cualquier tipo de bloqueo y se puede usar inmediatamente según el contexto del autor de la llamada.

(Heredado de AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Obtiene un valor que indica si el autor de la llamada mantiene cualquier tipo de bloqueo sin tener en cuenta la compatibilidad del bloqueo del contexto del autor de la llamada.

(Heredado de AsyncReaderWriterLock)
IsPassiveReadLockHeld

Obtiene un valor que indica si el autor de la llamada mantiene un bloqueo de lectura sin tener en cuenta la compatibilidad de bloqueo del contexto del autor de la llamada.

(Heredado de AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

Obtiene un valor que indica si el autor de la llamada mantiene un bloqueo de lectura actualizable sin tener en cuenta la compatibilidad del bloqueo del contexto del autor de la llamada.

(Heredado de AsyncReaderWriterLock)
IsPassiveWriteLockHeld

Obtiene un valor que indica si el autor de la llamada mantiene un bloqueo de escritura sin tener en cuenta la compatibilidad del bloqueo del contexto del autor de la llamada.

(Heredado de AsyncReaderWriterLock)
IsReadLockHeld

Obtiene un valor que indica si el autor de la llamada contiene un bloqueo de lectura.

(Heredado de AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

Obtiene un valor que indica si SynchronizationContext actual es uno que no es compatible con este bloqueo.

(Heredado de AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

Obtiene un valor que indica si el autor de la llamada contiene un bloqueo de lectura actualizable.

(Heredado de AsyncReaderWriterLock)
IsWriteLockHeld

Obtiene un valor que indica si el autor de la llamada contiene un bloqueo de escritura.

(Heredado de AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

Obtiene un SynchronizationContext objeto que, cuando se aplica, suprime cualquier bomba de mensajes que se pueda ejecutar durante bloques sincrónicos del subproceso de llamada.

(Heredado de AsyncReaderWriterLock)
SyncObject

Obtiene el objeto utilizado para sincronizar el acceso a los campos de esta instancia.

(Heredado de AsyncReaderWriterLock)

Métodos

Complete()

Genera nuevas solicitudes de bloqueo de nivel superior para rechazar y la tarea Completion para efectuar la transición a un estado completado después de que se haya liberado cualquier bloqueo emitido.

(Heredado de AsyncReaderWriterLock)
Dispose()

Bloqueo sin bloqueos que permite el acceso simultáneo, el acceso exclusivo o simultáneo con capacidad de actualización al acceso exclusivo, creando los permisos especiales para recursos que deben estar preparados para el acceso simultáneo o exclusivo.

(Heredado de AsyncReaderWriterLock)
Dispose(Boolean)

Elimina los recursos administrados y no administrados mantenidos por esta instancia.

(Heredado de AsyncReaderWriterLock)
GetAggregateLockFlags()

Devuelve el agregado de los marcadores de bloqueo para todos los bloqueos anidados.

GetHangReport()

Aporta datos para un informe de bloqueo.

(Heredado de AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

Recupera el recurso con el moniker especificado.

GetTaskSchedulerForReadLockRequest()

Obtenga el programador de tareas para ejecutar la continuación cuando se adquiere el bloqueo. AsyncReaderWriterLock usa un especial SynchronizationContext para controlar bloqueos exclusivos y omitirá el programador de tareas proporcionado, por lo que esto solo se usa en un escenario de bloqueo de lectura. Se llama a este método dentro del contexto de ejecución para esperar el bloqueo de lectura, por lo que puede seleccionar en TaskScheduler función del contexto de ejecución actual. Nota: el programador de tareas solo se usa cuando se emite el bloqueo más adelante. Si el bloqueo se emite inmediatamente cuando CanCurrentThreadHoldActiveLock devuelve true, se omitirá.

(Heredado de AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Obtiene un programador de tareas para preparar un recurso para el acceso simultáneo.

HideLocks()

Evita el uso o la visibilidad de los bloqueos del llamador hasta que se deseche el valor devuelto.

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

Comprueba si las marcas agregadas de todos los bloqueos de la pila de bloqueos satisfacen las marcas especificadas.

(Heredado de AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

Se desencadena cuando el último bloqueo de escritura está a punto de liberarse.

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

Se desencadena cuando se libera cualquier bloqueo.

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

Registra una devolución de llamada que se va a invocar cuando el bloqueo de escritura mantenido por el autor de la llamada está a punto de liberarse (bloqueo de escritura más externo).

(Heredado de AsyncReaderWriterLock)
OnCriticalFailure(Exception)

Se invoca cuando el bloqueo detecta un error interno o un patrón de uso ilegal que indica un error grave que se debe notificar inmediatamente a la aplicación o reducir el proceso para evitar bloqueos o daños en los datos.

(Heredado de AsyncReaderWriterLock)
OnCriticalFailure(String)

Se invoca cuando el bloqueo detecta un error interno o un patrón de uso ilegal que indica un error grave que se debe notificar inmediatamente a la aplicación o reducir el proceso para evitar bloqueos o daños en los datos.

(Heredado de AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

Se invoca después de liberar un bloqueo exclusivo, pero antes de que cualquier persona tenga la oportunidad de entrar en el bloqueo.

OnUpgradeableReadLockReleased()

Se invoca cuando se libera un bloqueo de lectura actualizable de nivel superior, sin dejar ningún bloqueo restante (escritura).

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

Prepara un recurso para el acceso simultáneo.

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

Prepara un recurso para el acceso mediante un subproceso.

ReadLockAsync(CancellationToken)

Obtiene un bloqueo de lectura, pendiente de bloqueo de forma asincrónica si no está inmediatamente disponible.

SetAllResourcesToUnknownState()

Establece todos los recursos que se deben tener en cuenta en un estado desconocido.

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

Marca los recursos cargados como recuperados bajo un bloqueo si satisfacen algún predicado.

SetResourceAsAccessed(TResource)

Marca un recurso como recuperado de un bloqueo.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Obtiene un bloqueo de lectura, pendiente de bloqueo de forma asincrónica si no está inmediatamente disponible.

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

Obtiene un bloqueo de lectura, pendiente de bloqueo de forma asincrónica si no está inmediatamente disponible.

UpgradeableReadLockAsync(CancellationToken)

Obtiene un bloqueo de lectura actualizable, en espera asincrónica del bloqueo si no está disponible inmediatamente.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Obtiene un bloqueo de escritura, pendiente de bloqueo de forma asincrónica si no está inmediatamente disponible.

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

Obtiene un bloqueo de escritura, pendiente de bloqueo de forma asincrónica si no está inmediatamente disponible.

WriteLockAsync(CancellationToken)

Obtiene un bloqueo de escritura, pendiente de bloqueo de forma asincrónica si no está inmediatamente disponible.

Implementaciones de interfaz explícitas

IHangReportContributor.GetHangReport()

Aporta datos para un informe de bloqueo.

(Heredado de AsyncReaderWriterLock)

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para subprocesos para todos los miembros.