Condividi tramite


AsyncReaderWriterResourceLock<TMoniker,TResource> Classe

Definizione

Blocco non bloccante che consente l'accesso simultaneo, l'accesso esclusivo o l'accesso simultaneo con semplicità di aggiornamento all'accesso esclusivo, facendo concessioni speciali 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

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à

AmbientLock

Ottiene il blocco impostato dal contesto di esecuzione 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 dedicare 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 il blocco non genererà più blocchi.

(Ereditato da AsyncReaderWriterLock)
DeadlockCheckTimeout

Ottiene un ritardo di tempo per verificare se il blocco del writer in sospeso e i blocchi del lettore formano 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 che 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 pompa di messaggi che può essere eseguita 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

Complete()

Determina il rifiuto di nuove richieste di blocco di primo livello e il passaggio dell'attività Completion allo stato completato dopo che tutti i blocchi emessi sono stati rilasciati.

(Ereditato da AsyncReaderWriterLock)
Dispose()

Blocco non bloccante che consente l'accesso simultaneo, l'accesso esclusivo o l'accesso simultaneo con semplicità di aggiornamento all'accesso esclusivo, facendo concessioni speciali 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'aggregato dei flag di blocco per tutti i blocchi annidati.

GetHangReport()

Fornisce i dati per un rapporto 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 emesso 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'utilizzo o la visibilità dei blocchi (o del blocco) del chiamante fino a che il valore restituito è 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 che deve essere segnalato 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 che deve essere segnalato 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 parte di un thread.

ReadLockAsync(CancellationToken)

Ottiene un blocco di lettura, attendendo in modo asincrono il blocco, se non è immediatamente disponibile.

SetAllResourcesToUnknownState()

Imposta tutte le risorse da considerare in uno stato sconosciuto.

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

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

SetResourceAsAccessed(TResource)

Contrassegna una risorsa come recuperata durante un blocco.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Ottiene un blocco di lettura, attendendo in modo asincrono il blocco, se non è immediatamente disponibile.

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

Ottiene un blocco di lettura, attendendo in modo asincrono il blocco, se non è immediatamente disponibile.

UpgradeableReadLockAsync(CancellationToken)

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

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Ottiene un blocco di scrittura, attendendo in modo asincrono il blocco, se non è immediatamente disponibile.

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

Ottiene un blocco di scrittura, attendendo in modo asincrono il blocco, se non è immediatamente disponibile.

WriteLockAsync(CancellationToken)

Ottiene un blocco di scrittura, attendendo in modo asincrono il blocco, se non è immediatamente disponibile.

Implementazioni dell'interfaccia esplicita

IHangReportContributor.GetHangReport()

Fornisce i dati per un rapporto di blocco.

(Ereditato da AsyncReaderWriterLock)

Si applica a

Thread safety

Questo tipo è thread-safe per tutti i membri.