AsyncReaderWriterResourceLock<TMoniker,TResource> Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Bloqueo sin bloqueo que permite el acceso simultáneo, el acceso exclusivo o la capacidad de actualización para el acceso exclusivo, lo que hace asignaciones especiales para los 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
Constructores
| Nombre | Description |
|---|---|
| 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
| Nombre | Description |
|---|---|
| AmbientLock |
Obtiene el bloqueo mantenido por el contexto de ejecución del autor de la llamada. (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 los bloqueos de lectura y bloqueos de escritor pendientes 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 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
| Nombre | Description |
|---|---|
| Complete() |
Hace que se rechacen las nuevas solicitudes de bloqueo de nivel superior y la Completion tarea pase a un estado completado después de que se hayan liberado los bloqueos emitidos. (Heredado de AsyncReaderWriterLock) |
| Dispose() |
Bloqueo sin bloqueo que permite el acceso simultáneo, el acceso exclusivo o la capacidad de actualización para el acceso exclusivo, lo que hace asignaciones especiales para los 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 las marcas de bloqueo para todos los bloqueos anidados. |
| GetHangReport() |
Contribuye a los datos de 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 recoger TaskScheduler en función del contexto de ejecución actual. Nota: el programador de tareas solo se usa, cuando el bloqueo se emite 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 autor de la llamada hasta que se elimina 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 en última instancia (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 alguien tenga la oportunidad de entrar en el bloqueo. |
| OnUpgradeableReadLockReleased() |
Se invoca cuando se libera un bloqueo de lectura actualizable de nivel superior, dejando sin 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, esperando de forma asincrónica el bloqueo si no está disponible inmediatamente. |
| 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 bajo un bloqueo. |
| UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Obtiene un bloqueo de lectura actualizable, a la espera asincrónica del bloqueo si no está disponible inmediatamente. (Heredado de AsyncReaderWriterLock) |
| UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Obtiene un bloqueo de lectura, esperando de forma asincrónica el bloqueo si no está disponible inmediatamente. |
| UpgradeableReadLockAsync(CancellationToken) |
Obtiene un bloqueo de lectura actualizable, a la espera asincrónica del bloqueo si no está disponible inmediatamente. |
| WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Obtiene un bloqueo de escritura, esperando de forma asincrónica el bloqueo si no está disponible inmediatamente. (Heredado de AsyncReaderWriterLock) |
| WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Obtiene un bloqueo de escritura, esperando de forma asincrónica el bloqueo si no está disponible inmediatamente. |
| WriteLockAsync(CancellationToken) |
Obtiene un bloqueo de escritura, esperando de forma asincrónica el bloqueo si no está disponible inmediatamente. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IHangReportContributor.GetHangReport() |
Contribuye a los datos de un informe de bloqueo. (Heredado de AsyncReaderWriterLock) |
Se aplica a
Seguridad para subprocesos
Este tipo es seguro para subprocesos para todos los miembros.