AsyncReaderWriterResourceLock<TMoniker,TResource> Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine nicht blockierende Sperre, die gleichzeitigen Zugriff, exklusiven Zugriff oder gleichzeitige Upgradebarkeit für exklusiven Zugriff zulässt, wodurch spezielle Zertifikate für Ressourcen gewährt werden, 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
Konstruktoren
| Name | Beschreibung |
|---|---|
| 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
| Name | Beschreibung |
|---|---|
| AmbientLock |
Ruft die Sperre ab, die vom Ausführungskontext des Aufrufers gehalten wird. (Geerbt von AsyncReaderWriterLock) |
| CanCurrentThreadHoldActiveLock |
Ruft einen Wert ab, der angibt, ob der aktuelle Thread eine aktive Sperre enthalten darf. (Geerbt von AsyncReaderWriterLock) |
| CaptureDiagnostics |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob zusätzliche Ressourcen zum Sammeln von Informationen aufgewendet werden sollen, die bei der Diagnose von Deadlocks nützlich wären usw. (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 Writer-Sperre und Leseleser eine Deadlock bilden. (Geerbt von AsyncReaderWriterLock) |
| IsAnyLockHeld |
Ruft einen Wert ab, der angibt, ob eine Art von Sperre vom Aufrufer gehalten wird und sofort verwendet werden kann, wenn der Kontext des Anrufers gegeben ist. (Geerbt von AsyncReaderWriterLock) |
| IsAnyPassiveLockHeld |
Ruft einen Wert ab, der angibt, ob eine Art von Sperre vom Aufrufer gehalten wird, ohne die Sperrkompatibilität des Kontexts des Aufrufers zu berücksichtigen. (Geerbt von AsyncReaderWriterLock) |
| IsPassiveReadLockHeld |
Ruft einen Wert ab, der angibt, ob eine Lesesperre vom Aufrufer gehalten wird, ohne die Sperrkompatibilität des Kontexts des Aufrufers zu berücksichtigen. (Geerbt von AsyncReaderWriterLock) |
| IsPassiveUpgradeableReadLockHeld |
Ruft einen Wert ab, der angibt, ob eine upgradefähige Lesesperre vom Aufrufer gehalten wird, ohne die Sperrkompatibilität des Kontexts des Aufrufers zu berücksichtigen. (Geerbt von AsyncReaderWriterLock) |
| IsPassiveWriteLockHeld |
Ruft einen Wert ab, der angibt, ob eine Schreibsperre vom Aufrufer gehalten wird, ohne die Sperrkompatibilität des Kontexts des Aufrufers zu berücksichtigen. (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 einer ist, der von dieser Sperre nicht unterstützt wird. (Geerbt von AsyncReaderWriterLock) |
| IsUpgradeableReadLockHeld |
Ruft einen Wert ab, der angibt, ob der Aufrufer eine upgradefähige Lesesperre enthält. (Geerbt von AsyncReaderWriterLock) |
| IsWriteLockHeld |
Ruft einen Wert ab, der angibt, ob der Aufrufer eine Schreibsperre enthält. (Geerbt von AsyncReaderWriterLock) |
| NoMessagePumpSynchronizationContext |
Ruft ein SynchronizationContext , das bei Anwendung alle 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 dieser Instanz verwendet wird. (Geerbt von AsyncReaderWriterLock) |
Methoden
| Name | Beschreibung |
|---|---|
| Complete() |
Bewirkt, dass neue Sperranforderungen auf oberster Ebene abgelehnt werden und die Completion Aufgabe in einen abgeschlossenen Zustand übergeht, nachdem alle ausgestellten Sperren freigegeben wurden. (Geerbt von AsyncReaderWriterLock) |
| Dispose() |
Eine nicht blockierende Sperre, die gleichzeitigen Zugriff, exklusiven Zugriff oder gleichzeitige Upgradebarkeit für exklusiven Zugriff zulässt, wodurch spezielle Zertifikate für Ressourcen gewährt werden, die für gleichzeitigen oder exklusiven Zugriff vorbereitet werden müssen. (Geerbt von AsyncReaderWriterLock) |
| Dispose(Boolean) |
Entfernt verwaltete und nicht verwaltete Ressourcen, die von dieser Instanz gehalten werden. (Geerbt von AsyncReaderWriterLock) |
| GetAggregateLockFlags() |
Gibt das Aggregat der Sperrkennzeichnungen für alle geschachtelten Sperren zurück. |
| GetHangReport() |
Trägt Daten für einen Hang-Bericht 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 ein Spezielles SynchronizationContext zum Behandeln von exklusiven Sperren und ignoriert den bereitgestellten Aufgabenplaner, sodass dies nur in einem Lesesperrszenario verwendet wird. Diese Methode wird innerhalb des Ausführungskontexts aufgerufen, um die Lesesperre zu warten, sodass sie basierend auf dem aktuellen Ausführungskontext aufgenommen TaskScheduler werden kann. Hinweis: Der Aufgabenplaner wird nur verwendet, wenn die Sperre später ausgestellt wird. Wenn die Sperre sofort ausgegeben 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 Sperrungen des Aufrufers, bis der zurückgegebene Wert verworfen wird. (Geerbt von AsyncReaderWriterLock) |
| LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle) |
Überprüft, ob die aggregierten Flags von allen Sperren im Sperrstapel die angegebenen Kennzeichnungen erfüllen. (Geerbt von AsyncReaderWriterLock) |
| OnBeforeExclusiveLockReleasedAsync() |
Wird ausgelöst, wenn die letzte Schreibsperre losgelassen werden soll. (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 werden soll, wenn die schreibgeschützte Sperre des Aufrufers letztendlich freigegeben werden soll (äußerste Schreibsperre). (Geerbt von AsyncReaderWriterLock) |
| OnCriticalFailure(Exception) |
Wird aufgerufen, wenn die Sperre einen internen Fehler oder ein illegales Verwendungsmuster erkennt, das einen schwerwiegenden Fehler angibt, der sofort an die Anwendung gemeldet werden sollte und/oder den Prozess herunterdrückt, um Blockaden oder Datenbeschädigungen zu vermeiden. (Geerbt von AsyncReaderWriterLock) |
| OnCriticalFailure(String) |
Wird aufgerufen, wenn die Sperre einen internen Fehler oder ein illegales Verwendungsmuster erkennt, das einen schwerwiegenden Fehler angibt, der sofort an die Anwendung gemeldet werden sollte und/oder den Prozess herunterdrückt, um Blockaden 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 einzugeben. |
| OnUpgradeableReadLockReleased() |
Wird aufgerufen, wenn eine upgradefähige Lesesperre auf oberster Ebene freigegeben wird und keine verbleibende (Schreib-)Sperre übrig bleibt. |
| PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken) |
Bereitet eine Ressource für den gleichzeitigen Zugriff vor. |
| PrepareResourceForExclusiveAccessAsync(TResource, AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Bereitet eine Ressource für den Zugriff durch einen Thread vor. |
| ReadLockAsync(CancellationToken) |
Ruft eine Lesesperre ab, die asynchron auf die Sperre wartet, 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) |
Kennzeichnet alle geladenen Ressourcen als unter einer Sperre abgerufen wurden, wenn sie einige Prädikate erfüllen. |
| SetResourceAsAccessed(TResource) |
Kennzeichnet eine Ressource als unter einer Sperre abgerufen wurde. |
| UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Ruft eine upgradefähige Lesesperre ab, die asynchron auf die Sperre wartet, wenn sie nicht sofort verfügbar ist. (Geerbt von AsyncReaderWriterLock) |
| UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Ruft eine Lesesperre ab, die asynchron auf die Sperre wartet, wenn sie nicht sofort verfügbar ist. |
| UpgradeableReadLockAsync(CancellationToken) |
Ruft eine upgradefähige Lesesperre ab, die asynchron auf die Sperre wartet, wenn sie nicht sofort verfügbar ist. |
| WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Ruft eine Schreibsperre ab, die asynchron auf die Sperre wartet, wenn sie nicht sofort verfügbar ist. (Geerbt von AsyncReaderWriterLock) |
| WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Ruft eine Schreibsperre ab, die asynchron auf die Sperre wartet, wenn sie nicht sofort verfügbar ist. |
| WriteLockAsync(CancellationToken) |
Ruft eine Schreibsperre ab, die asynchron auf die Sperre wartet, wenn sie nicht sofort verfügbar ist. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IHangReportContributor.GetHangReport() |
Trägt Daten für einen Hang-Bericht bei. (Geerbt von AsyncReaderWriterLock) |
Gilt für:
Threadsicherheit
Dieser Typ ist threadsicher für alle Mitglieder.