Lingua

AsyncReaderWriterResourceLock<TMoniker,TResource> Classe

Definizione

Blocco non bloccante che consente l'accesso simultaneo, l'accesso esclusivo o simultaneo con l'aggiornamento all'accesso esclusivo, rendendo speciali le quote per le risorse che devono essere preparate per l'accesso simultaneo o esclusivo.

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

Parametri di tipo

TMoniker

Tipo del moniker che identifica una risorsa.

TResource

Tipo di risorsa emesso per l'accesso da questo blocco.

Ereditarietà
AsyncReaderWriterResourceLock<TMoniker,TResource>

Costruttori

Nome Descrizione
AsyncReaderWriterResourceLock<TMoniker,TResource>()

Inizializza una nuova istanza della classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

Inizializza una nuova istanza della classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

Inizializza una nuova istanza della classe AsyncReaderWriterResourceLock<TMoniker,TResource>.

Proprietà

Nome Descrizione
AmbientLock

Ottiene il blocco mantenuto dal contesto di esecuzione del chiamante.

(Ereditato da AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

Ottiene un valore che indica se il thread corrente può contenere un blocco attivo.

(Ereditato da AsyncReaderWriterLock)
CaptureDiagnostics

Ottiene o imposta un valore che indica se è necessario spendere risorse aggiuntive per raccogliere informazioni utili per la diagnosi dei deadlock e così via.

(Ereditato da AsyncReaderWriterLock)
Completion

Ottiene un'attività il cui completamento segnala che questo blocco non genera più blocchi.

(Ereditato da AsyncReaderWriterLock)
DeadlockCheckTimeout

Ottiene un ritardo di tempo per verificare se il blocco del writer in sospeso e il reader blocca un deadlock.

(Ereditato da AsyncReaderWriterLock)
IsAnyLockHeld

Ottiene un valore che indica se qualsiasi tipo di blocco viene mantenuto dal chiamante e può essere utilizzato immediatamente in base al contesto del chiamante.

(Ereditato da AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Ottiene un valore che indica se qualsiasi tipo di blocco viene mantenuto dal chiamante senza considerare la compatibilità del blocco del contesto del chiamante.

(Ereditato da AsyncReaderWriterLock)
IsPassiveReadLockHeld

Ottiene un valore che indica se un blocco di lettura viene mantenuto dal chiamante senza considerare la compatibilità del blocco del contesto del chiamante.

(Ereditato da AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

Ottiene un valore che indica se un blocco di lettura aggiornabile viene mantenuto dal chiamante senza considerare la compatibilità del blocco del contesto del chiamante.

(Ereditato da AsyncReaderWriterLock)
IsPassiveWriteLockHeld

Ottiene un valore che indica se un blocco di scrittura viene mantenuto dal chiamante senza considerare la compatibilità del blocco del contesto del chiamante.

(Ereditato da AsyncReaderWriterLock)
IsReadLockHeld

Ottiene un valore che indica se il chiamante contiene un blocco di lettura.

(Ereditato da AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

Ottiene un valore che indica se synchronizationContext corrente è uno non supportato da questo blocco.

(Ereditato da AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

Ottiene un valore che indica se il chiamante contiene un blocco di lettura aggiornabile.

(Ereditato da AsyncReaderWriterLock)
IsWriteLockHeld

Ottiene un valore che indica se il chiamante contiene un blocco di scrittura.

(Ereditato da AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

Ottiene un oggetto SynchronizationContext che, se applicato, elimina qualsiasi message pump che può essere eseguito durante blocchi sincroni del thread chiamante.

(Ereditato da AsyncReaderWriterLock)
SyncObject

Ottiene l'oggetto utilizzato per sincronizzare l'accesso ai campi dell'istanza.

(Ereditato da AsyncReaderWriterLock)

Metodi

Nome Descrizione
Complete()

Fa sì che le nuove richieste di blocco di primo livello vengano rifiutate e che l'attività Completion passi a uno stato completato dopo il rilascio di eventuali blocchi rilasciati.

(Ereditato da AsyncReaderWriterLock)
Dispose()

Blocco non bloccante che consente l'accesso simultaneo, l'accesso esclusivo o simultaneo con l'aggiornamento all'accesso esclusivo, rendendo speciali le quote per le risorse che devono essere preparate per l'accesso simultaneo o esclusivo.

(Ereditato da AsyncReaderWriterLock)
Dispose(Boolean)

Elimina le risorse gestite e non gestite mantenute da questa istanza.

(Ereditato da AsyncReaderWriterLock)
GetAggregateLockFlags()

Restituisce l'aggregazione dei flag di blocco per tutti i blocchi annidati.

GetHangReport()

Contribuisce ai dati per un report di blocco.

(Ereditato da AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

Recupera la risorsa con il moniker specificato.

GetTaskSchedulerForReadLockRequest()

Ottenere l'utilità di pianificazione dell'attività per eseguire la continuazione quando viene acquisito il blocco. AsyncReaderWriterLock usa uno speciale SynchronizationContext per gestire blocchi esclusivi e ignorerà l'utilità di pianificazione delle attività fornita, quindi viene usata solo in uno scenario di blocco in lettura. Questo metodo viene chiamato all'interno del contesto di esecuzione per attendere il blocco di lettura, in modo che possa essere prelevato TaskScheduler in base al contesto di esecuzione corrente. Nota: l'utilità di pianificazione dell'attività viene usata solo quando il blocco viene rilasciato in un secondo momento. Se il blocco viene generato immediatamente quando CanCurrentThreadHoldActiveLock restituisce true, verrà ignorato.

(Ereditato da AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Ottiene un'utilità di pianificazione per preparare una risorsa per l'accesso simultaneo.

HideLocks()

Impedisce l'uso o la visibilità dei blocchi del chiamante fino a quando il valore restituito non viene eliminato.

(Ereditato da AsyncReaderWriterLock)
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle)

Controlla se i flag aggregati di tutti i blocchi nello stack di blocchi soddisfano i flag specificati.

(Ereditato da AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

Generato quando l'ultimo blocco di scrittura sta per essere rilasciato.

(Ereditato da AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

Generato quando viene rilasciato un blocco.

(Ereditato da AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

Registra un callback da richiamare quando il blocco di scrittura mantenuto dal chiamante sta per essere rilasciato (blocco di scrittura più esterno).

(Ereditato da AsyncReaderWriterLock)
OnCriticalFailure(Exception)

Richiamato quando il blocco rileva un errore interno o un modello di utilizzo non valido che indica un grave difetto da segnalare immediatamente all'applicazione e/o arrestare il processo per evitare blocchi o danneggiamenti dei dati.

(Ereditato da AsyncReaderWriterLock)
OnCriticalFailure(String)

Richiamato quando il blocco rileva un errore interno o un modello di utilizzo non valido che indica un grave difetto da segnalare immediatamente all'applicazione e/o arrestare il processo per evitare blocchi o danneggiamenti dei dati.

(Ereditato da AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

Richiamato dopo il rilascio di un blocco esclusivo, ma prima che chiunque abbia la possibilità di entrare nel blocco.

OnUpgradeableReadLockReleased()

Richiamato quando viene rilasciato un blocco di lettura aggiornabile di primo livello, senza alcun blocco rimanente (scrittura).

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

Prepara una risorsa per l'accesso simultaneo.

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

Prepara una risorsa per l'accesso da un thread.

ReadLockAsync(CancellationToken)

Ottiene un blocco di lettura, in attesa asincrono del blocco se non è immediatamente disponibile.

SetAllResourcesToUnknownState()

Imposta tutte le risorse da considerare in uno stato sconosciuto.

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

Contrassegna le risorse caricate come recuperate in un blocco se soddisfano un predicato.

SetResourceAsAccessed(TResource)

Contrassegna una risorsa come recuperata in un blocco.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Ottiene un blocco di lettura aggiornabile, in modo asincrono in attesa del blocco se non è immediatamente disponibile.

(Ereditato da AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Ottiene un blocco di lettura, in attesa asincrono del blocco se non è immediatamente disponibile.

UpgradeableReadLockAsync(CancellationToken)

Ottiene un blocco di lettura aggiornabile, in modo asincrono in attesa del blocco se non è immediatamente disponibile.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Ottiene un blocco di scrittura, in attesa asincrono del blocco se non è immediatamente disponibile.

(Ereditato da AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Ottiene un blocco di scrittura, in attesa asincrono del blocco se non è immediatamente disponibile.

WriteLockAsync(CancellationToken)

Ottiene un blocco di scrittura, in attesa asincrono del blocco se non è immediatamente disponibile.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IHangReportContributor.GetHangReport()

Contribuisce ai dati per un report di blocco.

(Ereditato da AsyncReaderWriterLock)

Si applica a

Thread safety

Questo tipo è thread-safe per tutti i membri.