AsyncReaderWriterResourceLock<TMoniker,TResource> Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Neblokující zámek, který umožňuje souběžný přístup, výhradní přístup nebo souběžný s upgradovatelností na výhradní přístup, což umožňuje zvláštní povolení pro prostředky, které musí být připravené na souběžný nebo výhradní přístup.
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
Parametry typu
- TMoniker
Typ monikeru, který identifikuje prostředek.
- TResource
Typ prostředku vystaveného pro přístup tímto zámkem.
- Dědičnost
Konstruktory
AsyncReaderWriterResourceLock<TMoniker,TResource>() |
Inicializuje novou instanci AsyncReaderWriterResourceLock<TMoniker,TResource> třídy . |
AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean) |
Inicializuje novou instanci AsyncReaderWriterResourceLock<TMoniker,TResource> třídy . |
AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean) |
Inicializuje novou instanci AsyncReaderWriterResourceLock<TMoniker,TResource> třídy . |
Vlastnosti
AmbientLock |
Získá zámek držený kontext spuštění volajícího. (Zděděno od AsyncReaderWriterLock) |
CanCurrentThreadHoldActiveLock |
Získá hodnotu označující, zda aktuální vlákno může obsahovat aktivní zámek. (Zděděno od AsyncReaderWriterLock) |
CaptureDiagnostics |
Získá nebo nastaví hodnotu označující, zda další prostředky mají být vynaloženy ke shromažďování informací, které by byly užitečné při diagnostice vzájemného zablokování atd. (Zděděno od AsyncReaderWriterLock) |
Completion |
Získá úlohu, jejíž dokončení signalizuje, že tento zámek již nebude vydávat zámky. (Zděděno od AsyncReaderWriterLock) |
DeadlockCheckTimeout |
Získá časové zpoždění ke kontrole, zda čekající zámek zapisovače a zámky čtečky tvoří vzájemné zablokování. (Zděděno od AsyncReaderWriterLock) |
IsAnyLockHeld |
Získá hodnotu označující, zda je nějaký druh zámku držen volající a lze jej okamžitě použít v kontextu volajícího. (Zděděno od AsyncReaderWriterLock) |
IsAnyPassiveLockHeld |
Získá hodnotu označující, zda je jakýkoli druh zámku držen volající bez ohledu na zámek kompatibilitu kontextu volajícího. (Zděděno od AsyncReaderWriterLock) |
IsPassiveReadLockHeld |
Získá hodnotu označující, zda zámek čtení je držen volající bez ohledu na kompatibilitu zámku kontextu volajícího. (Zděděno od AsyncReaderWriterLock) |
IsPassiveUpgradeableReadLockHeld |
Získá hodnotu označující, zda lze upgradovat zámek čtení je držen volající bez ohledu na zámek kompatibilitu kontextu volajícího. (Zděděno od AsyncReaderWriterLock) |
IsPassiveWriteLockHeld |
Získá hodnotu označující, zda je zámek zápisu držen volající bez ohledu na kompatibilitu zámku kontextu volajícího. (Zděděno od AsyncReaderWriterLock) |
IsReadLockHeld |
Získá hodnotu označující, zda volající drží zámek čtení. (Zděděno od AsyncReaderWriterLock) |
IsUnsupportedSynchronizationContext |
Získá hodnotu označující, zda aktuální SynchronizationContext je jeden, který není podporován tento zámek. (Zděděno od AsyncReaderWriterLock) |
IsUpgradeableReadLockHeld |
Získá hodnotu označující, zda volající má upgradovatelný zámek čtení. (Zděděno od AsyncReaderWriterLock) |
IsWriteLockHeld |
Získá hodnotu označující, zda volající drží zámek zápisu. (Zděděno od AsyncReaderWriterLock) |
NoMessagePumpSynchronizationContext |
SynchronizationContext Získá, který při použití, potlačí všechny zprávy pumpy, které mohou běžet během synchronní bloky volající vlákno. (Zděděno od AsyncReaderWriterLock) |
SyncObject |
Získá objekt použitý k synchronizaci přístupu k polím této instance. (Zděděno od AsyncReaderWriterLock) |
Metody
Complete() |
Způsobí zamítnutí nových žádostí o uzamčení nejvyšší úrovně a Completion přechod úlohy do dokončeného stavu po uvolnění všech vydaných zámků. (Zděděno od AsyncReaderWriterLock) |
Dispose() |
Neblokující zámek, který umožňuje souběžný přístup, výhradní přístup nebo souběžný s upgradovatelností na výhradní přístup, což umožňuje zvláštní povolení pro prostředky, které musí být připravené na souběžný nebo výhradní přístup. (Zděděno od AsyncReaderWriterLock) |
Dispose(Boolean) |
Odstraní spravované a nespravované prostředky uchovávané touto instancí. (Zděděno od AsyncReaderWriterLock) |
GetAggregateLockFlags() |
Vrátí agregaci příznaků zámku pro všechny vnořené zámky. |
GetHangReport() |
Přispívá daty pro sestavu zablokování. (Zděděno od AsyncReaderWriterLock) |
GetResourceAsync(TMoniker, CancellationToken) |
Načte prostředek se zadaným monikerem. |
GetTaskSchedulerForReadLockRequest() |
Získejte plánovač úloh, aby po získání zámku provedl pokračování. AsyncReaderWriterLock používá speciální SynchronizationContext ke zpracování výhradních zámků a ignoruje plánovač úloh poskytnuté, takže se používá pouze ve scénáři zámku pro čtení. Tato metoda je volána v kontextu spuštění, aby čekala na zámek čtení, takže se může navázat TaskScheduler na základě aktuálního kontextu spuštění. Poznámka: Plánovač úloh se používá pouze při pozdějším vydání zámku. Pokud je zámek vydán okamžitě, když CanCurrentThreadHoldActiveLock vrátí hodnotu true, bude ignorován. (Zděděno od AsyncReaderWriterLock) |
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource) |
Získá plánovač úloh pro přípravu prostředku pro souběžný přístup. |
HideLocks() |
Zabraňuje použití nebo viditelnosti zámků volajícího, dokud se vrácená hodnota nezlikviduje. (Zděděno od AsyncReaderWriterLock) |
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle) |
Zkontroluje, jestli agregované příznaky ze všech zámků v zásobníku zámků vyhovují zadaným příznakům. (Zděděno od AsyncReaderWriterLock) |
OnBeforeExclusiveLockReleasedAsync() |
Aktivuje se, když se má uvolnit poslední zámek zápisu. (Zděděno od AsyncReaderWriterLock) |
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle) |
Aktivuje se při uvolnění jakéhokoli zámku. (Zděděno od AsyncReaderWriterLock) |
OnBeforeWriteLockReleased(Func<Task>) |
Zaregistruje zpětné volání, které má být vyvoláno, když se zámek zápisu držený volajícím nakonec uvolní (vnější zámek zápisu). (Zděděno od AsyncReaderWriterLock) |
OnCriticalFailure(Exception) |
Vyvolá se, když zámek zjistí vnitřní chybu nebo neplatný vzor použití, který značí závažnou chybu, která by měla být okamžitě nahlášena aplikaci a/nebo spustit proces, aby se zabránilo zablokování nebo poškození dat. (Zděděno od AsyncReaderWriterLock) |
OnCriticalFailure(String) |
Vyvolá se, když zámek zjistí vnitřní chybu nebo neplatný vzor použití, který značí závažnou chybu, která by měla být okamžitě nahlášena aplikaci a/nebo spustit proces, aby se zabránilo zablokování nebo poškození dat. (Zděděno od AsyncReaderWriterLock) |
OnExclusiveLockReleasedAsync() |
Vyvolá se po uvolnění výhradního zámku, ale před tím, než má kdokoli šanci zámek zadat. |
OnUpgradeableReadLockReleased() |
Vyvolá se při uvolnění upgradovatelného zámku čtení nejvyšší úrovně, který nezanechává žádný zbývající zámek (zápis). |
PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken) |
Připraví prostředek pro souběžný přístup. |
PrepareResourceForExclusiveAccessAsync(TResource, AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Připraví prostředek pro přístup pomocí jednoho vlákna. |
ReadLockAsync(CancellationToken) |
Získá zámek pro čtení, asynchronně čeká na uzamčení, pokud není ihned k dispozici. |
SetAllResourcesToUnknownState() |
Nastaví všechny prostředky tak, aby byly považovány za neznámé. |
SetResourceAsAccessed(Func<TResource,Object,Boolean>, Object) |
Označí všechny načtené prostředky jako načtené pod zámkem, pokud splňují určitý predikát. |
SetResourceAsAccessed(TResource) |
Označí prostředek jako načtený pod zámkem. |
UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Získá zámek pro čtení, asynchronně čeká na uzamčení, pokud není ihned k dispozici. (Zděděno od AsyncReaderWriterLock) |
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Získá zámek pro čtení, asynchronně čeká na uzamčení, pokud není ihned k dispozici. |
UpgradeableReadLockAsync(CancellationToken) |
Získá upgradovatelný zámek pro čtení, asynchronně čeká na zámek, pokud není okamžitě k dispozici. |
WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken) |
Získá zámek pro zápis, asynchronně čeká na uzamčení, pokud není ihned k dispozici. (Zděděno od AsyncReaderWriterLock) |
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken) |
Získá zámek pro zápis, asynchronně čeká na uzamčení, pokud není ihned k dispozici. |
WriteLockAsync(CancellationToken) |
Získá zámek pro zápis, asynchronně čeká na uzamčení, pokud není ihned k dispozici. |
Explicitní implementace rozhraní
IHangReportContributor.GetHangReport() |
Přispívá daty pro sestavu zablokování. (Zděděno od AsyncReaderWriterLock) |
Platí pro
Bezpečný přístup z více vláken
Tento typ je bezpečný pro přístup z více vláken pro všechny členy.