Freigeben über


AsyncReaderWriterResourceLock<TMoniker,TResource> Klasse

Definition

Eine nicht blockierende Sperre, die gleichzeitigen Zugriff, exklusiven Zugriff oder gleichzeitigen mit Aktualisierbarkeit auf exklusiven Zugriff zulässt und Sonderbewilligungen für Ressourcen macht, die für gleichzeitigen oder exklusiven Zugriff vorbereitet werden müssen.

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

Typparameter

TMoniker

Der Typ des Monikers, der eine Ressource identifiziert.

TResource

Der Typ der Ressource, die für den Zugriff durch diese Sperre ausgestellt wurde.

Vererbung
AsyncReaderWriterResourceLock<TMoniker,TResource>

Konstruktoren

AsyncReaderWriterResourceLock<TMoniker,TResource>()

Initialisiert eine neue Instanz der AsyncReaderWriterResourceLock<TMoniker,TResource>-Klasse.

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

Initialisiert eine neue Instanz der AsyncReaderWriterResourceLock<TMoniker,TResource>-Klasse.

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

Initialisiert eine neue Instanz der AsyncReaderWriterResourceLock<TMoniker,TResource>-Klasse.

Eigenschaften

AmbientLock

Ruft die Sperre ab, die durch den Ausführungskontext des Aufrufers angehalten wird.

(Geerbt von AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

Ruft einen Wert ab, der angibt, ob der aktuelle Thread eine aktive Sperre enthalten darf.

(Geerbt von AsyncReaderWriterLock)
CaptureDiagnostics

Ruft einen Wert ab, der angibt, ob zusätzliche Ressourcen ausgegeben werden sollen, um Informationen zu sammeln, die bei der Diagnose von Deadlocks usw. nützlich wären, oder legt diesen fest.

(Geerbt von AsyncReaderWriterLock)
Completion

Ruft eine Aufgabe ab, deren Abschluss signalisiert, dass diese Sperre keine Sperren mehr ausgibt.

(Geerbt von AsyncReaderWriterLock)
DeadlockCheckTimeout

Ruft eine Zeitverzögerung ab, um zu überprüfen, ob ausstehende Schreib- und Lesersperren einen Deadlock bilden.

(Geerbt von AsyncReaderWriterLock)
IsAnyLockHeld

Ruft einen Wert ab, der angibt, ob eine art von Sperre vom Aufrufer gehalten wird und sofort im Kontext des Aufrufers verwendet werden kann.

(Geerbt von AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Ruft einen Wert ab, der angibt, ob eine Art von Sperre vom Aufrufer gehalten wird, ohne rücksicht auf die Sperrkompatibilität des Aufruferskontexts.

(Geerbt von AsyncReaderWriterLock)
IsPassiveReadLockHeld

Ruft einen Wert ab, der angibt, ob eine Lesesperre vom Aufrufer gehalten wird, unabhängig von der Sperrkompatibilität des Aufruferskontexts.

(Geerbt von AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

Ruft einen Wert ab, der angibt, ob eine upgradebare Lesesperre vom Aufrufer gehalten wird, ohne Rücksicht auf die Sperrkompatibilität des Aufruferskontexts.

(Geerbt von AsyncReaderWriterLock)
IsPassiveWriteLockHeld

Ruft einen Wert ab, der angibt, ob eine Schreibsperre vom Aufrufer gehalten wird, ohne rücksicht auf die Sperrkompatibilität des Aufruferskontexts.

(Geerbt von AsyncReaderWriterLock)
IsReadLockHeld

Ruft einen Wert ab, der angibt, ob der Aufrufer eine Lesesperre enthält.

(Geerbt von AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

Ruft einen Wert ab, der angibt, ob der aktuelle SynchronizationContext von dieser Sperre nicht unterstützt wird.

(Geerbt von AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

Ruft einen Wert ab, der angibt, ob der Aufrufer über eine upgradebare Lesesperre verfügt.

(Geerbt von AsyncReaderWriterLock)
IsWriteLockHeld

Ruft einen Wert ab, der angibt, ob der Aufrufer eine Schreibsperre enthält.

(Geerbt von AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

Ruft eine SynchronizationContext ab, die bei Anwendung jede Nachrichtenpumpe unterdrückt, die während synchroner Blöcke des aufrufenden Threads ausgeführt werden kann.

(Geerbt von AsyncReaderWriterLock)
SyncObject

Ruft das Objekt ab, das zum Synchronisieren des Zugriffs auf die Felder dieses instance verwendet wird.

(Geerbt von AsyncReaderWriterLock)

Methoden

Complete()

Verursacht, dass neue Sperrenanforderungen der obersten Ebene, die abgelehnt werden sollen und die Completion-Aufgabe in einen abgeschlossenen Zustand übergehen, nachdem alle ausgegebenen Sperren freigegeben wurden.

(Geerbt von AsyncReaderWriterLock)
Dispose()

Eine nicht blockierende Sperre, die gleichzeitigen Zugriff, exklusiven Zugriff oder gleichzeitigen mit Aktualisierbarkeit auf exklusiven Zugriff zulässt und Sonderbewilligungen für Ressourcen macht, die für gleichzeitigen oder exklusiven Zugriff vorbereitet werden müssen.

(Geerbt von AsyncReaderWriterLock)
Dispose(Boolean)

Veräußert verwaltete und nicht verwaltete Ressourcen, die von diesem instance gehalten werden.

(Geerbt von AsyncReaderWriterLock)
GetAggregateLockFlags()

Gibt das Aggregat der Sperrflags für alle geschachtelten Sperren zurück.

GetHangReport()

Trägt Daten für einen Absturzbericht bei.

(Geerbt von AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

Ruft die Ressource mit dem angegebenen Moniker ab.

GetTaskSchedulerForReadLockRequest()

Rufen Sie den Aufgabenplaner ab, um die Fortsetzung auszuführen, wenn die Sperre abgerufen wird. AsyncReaderWriterLock verwendet einen Speziellen SynchronizationContext , um exklusive Sperren zu behandeln, und ignoriert den bereitgestellten Aufgabenplaner, sodass dies nur in einem Lesesperresszenario verwendet wird. Diese Methode wird innerhalb des Ausführungskontexts aufgerufen, um die Lesesperre abzuwarten, sodass sie basierend auf dem aktuellen Ausführungskontext gestartet TaskScheduler werden kann. Hinweis: Der Aufgabenplaner wird nur verwendet, wenn die Sperre später ausgestellt wird. Wenn die Sperre sofort ausgestellt wird, wenn CanCurrentThreadHoldActiveLock true zurückgegeben wird, wird sie ignoriert.

(Geerbt von AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Ruft einen Aufgabenplaner ab, um eine Ressource für den gleichzeitigen Zugriff vorzubereiten.

HideLocks()

Verhindert die Verwendung oder Sichtbarkeit der Sperre(n) des Aufrufers, bis der zurückgegebene Wert gelöscht ist.

(Geerbt von AsyncReaderWriterLock)
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle)

Überprüft, ob die aggregierten Flags aller Sperren im Sperrstapel die angegebenen Flags erfüllen.

(Geerbt von AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

Wird ausgelöst, wenn die letzte Schreibsperre aufgehoben wird.

(Geerbt von AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

Wird ausgelöst, wenn eine Sperre freigegeben wird.

(Geerbt von AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

Registriert einen Rückruf, der aufgerufen wird, wenn die vom Aufrufer gehaltene Schreibsperre endgültig aufgehoben wird (äußerste Schreibsperre).

(Geerbt von AsyncReaderWriterLock)
OnCriticalFailure(Exception)

Wird aufgerufen, wenn die Sperre einen internen Fehler oder ein illegales Verwendungsmuster erkennt, das auf einen schwerwiegenden Fehler hinweist, der sofort an die Anwendung gemeldet werden sollte und/oder den Prozess zum Herunterfahren führt, um Hänger oder Datenbeschädigungen zu vermeiden.

(Geerbt von AsyncReaderWriterLock)
OnCriticalFailure(String)

Wird aufgerufen, wenn die Sperre einen internen Fehler oder ein illegales Verwendungsmuster erkennt, das auf einen schwerwiegenden Fehler hinweist, der sofort an die Anwendung gemeldet werden sollte und/oder den Prozess zum Herunterfahren führt, um Hänger oder Datenbeschädigungen zu vermeiden.

(Geerbt von AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

Wird aufgerufen, nachdem eine exklusive Sperre freigegeben wurde, aber bevor jemand die Möglichkeit hat, die Sperre zu betreten.

OnUpgradeableReadLockReleased()

Wird aufgerufen, wenn eine upgradebare Lesesperre der obersten Ebene aufgehoben wird, sodass keine verbleibende (Schreib-)Sperre verbleibt.

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

Bereitet eine Ressource für gleichzeitigen Zugriff vor.

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

Bereitet eine Ressource für den Zugriff von einem Thread vor.

ReadLockAsync(CancellationToken)

Ruft eine Lesesperre ab wartet asynchron auf die Sperre, wenn sie nicht sofort verfügbar ist.

SetAllResourcesToUnknownState()

Legt alle Ressourcen fest, die in einem unbekannten Zustand berücksichtigt werden sollen.

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

Markiert alle geladenen Ressourcen als unter einer Sperre abgerufen, wenn sie ein Prädikat erfüllen.

SetResourceAsAccessed(TResource)

Markiert eine Ressource als bereits unter einer Sperre abgerufen.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Ruft eine Lesesperre ab wartet asynchron auf die Sperre, wenn sie nicht sofort verfügbar ist.

(Geerbt von AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Ruft eine Lesesperre ab wartet asynchron auf die Sperre, wenn sie nicht sofort verfügbar ist.

UpgradeableReadLockAsync(CancellationToken)

Ruft eine upgradebare Lesesperre ab, die asynchron auf die Sperre wartet, wenn sie nicht sofort verfügbar ist.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Ruft eine Schreibsperre ab wartet asynchron auf die Sperre, wenn sie nicht sofort verfügbar ist.

(Geerbt von AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Ruft eine Schreibsperre ab wartet asynchron auf die Sperre, wenn sie nicht sofort verfügbar ist.

WriteLockAsync(CancellationToken)

Ruft eine Schreibsperre ab wartet asynchron auf die Sperre, wenn sie nicht sofort verfügbar ist.

Explizite Schnittstellenimplementierungen

IHangReportContributor.GetHangReport()

Trägt Daten für einen Absturzbericht bei.

(Geerbt von AsyncReaderWriterLock)

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher für alle Member.