Sdílet prostřednictvím


AsyncReaderWriterResourceLock<TMoniker,TResource> Třída

Definice

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
AsyncReaderWriterResourceLock<TMoniker,TResource>

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.