Jazyk

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 možností upgradu na výhradní přístup, a poskytuje zvláštní příspěvky pro prostředky, které musí být připravené pro souběžný nebo exkluzivní 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

Name Description
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

Name Description
AmbientLock

Získá zámek uchovávaný kontextem provádění volajícího.

(Zděděno od AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

Získá hodnotu určující, zda aktuální vlákno je povoleno uchovávat aktivní zámek.

(Zděděno od AsyncReaderWriterLock)
CaptureDiagnostics

Získá nebo nastaví hodnotu označující, zda by měly být vynaloženy další prostředky ke shromažďování informací, které by byly užitečné při diagnostice zablokování atd.

(Zděděno od AsyncReaderWriterLock)
Completion

Získá úkol, jehož dokončení signály, ž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í zapisovač uzamčení a čtečky zámky tvoří vzájemné zablokování.

(Zděděno od AsyncReaderWriterLock)
IsAnyLockHeld

Získá hodnotu určující, zda jakýkoli druh zámku je držen volající a lze jej okamžitě použít vzhledem k kontextu volajícího.

(Zděděno od AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Získá hodnotu určující, zda jakýkoli druh zámku je držen volající bez ohledu na kompatibilitu zámku kontextu volajícího.

(Zděděno od AsyncReaderWriterLock)
IsPassiveReadLockHeld

Získá hodnotu určující, zda je zámek čtení uložen volajícím bez ohledu na kompatibilitu zámku kontextu volajícího.

(Zděděno od AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

Získá hodnotu určující, zda je upgradeable read lock držení volající bez ohledu na kompatibilitu zámku kontextu volajícího.

(Zděděno od AsyncReaderWriterLock)
IsPassiveWriteLockHeld

Získá hodnotu určující, zda je zámek zápisu držen volajícím bez ohledu na kompatibilitu zámku kontextu volajícího.

(Zděděno od AsyncReaderWriterLock)
IsReadLockHeld

Získá hodnotu určující, zda volající drží zámek čtení.

(Zděděno od AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

Získá hodnotu určující, zda aktuální SynchronizationContext je jeden, který není podporován tímto zámkem.

(Zděděno od AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

Získá hodnotu označující, zda volající obsahuje upgradovatelný zámek čtení.

(Zděděno od AsyncReaderWriterLock)
IsWriteLockHeld

Získá hodnotu urč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čuje jakékoli čerpadlo zpráv, které může běžet během synchronních bloků volajícího vlákna.

(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

Name Description
Complete()

Způsobí odmítnutí nových žádostí o uzamčení nejvyšší úrovně a Completion úkol přechod na dokončený stav po vydá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 možností upgradu na výhradní přístup, a poskytuje zvláštní příspěvky pro prostředky, které musí být připravené pro souběžný nebo exkluzivní 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á k datům 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 spustil pokračování. AsyncReaderWriterLock používá speciální SynchronizationContext pro zpracování exkluzivních zámků a bude ignorovat zadaný plánovač úloh, takže se používá pouze ve scénáři zámku pro čtení. Tato metoda se volá v kontextu spuštění, aby počkala zámek čtení, takže může vyzvednout 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 se zámek vydá okamžitě, když CanCurrentThreadHoldActiveLock vrátí hodnotu true, bude ignorován.

(Zděděno od AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Získá plánovač úloh, který připraví prostředek pro souběžný přístup.

HideLocks()

Zabrání použití nebo viditelnosti zámků volajícího, dokud nebude vrácená hodnota uvolněna.

(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ů splňují zadané příznaky.

(Zděděno od AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

Aktivuje se, když bude vydán poslední zámek zápisu.

(Zděděno od AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

Aktivuje se, když se uvolní nějaký zámek.

(Zděděno od AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

Zaregistruje zpětné volání, které se má vyvolat, když se zámek zápisu uchovávaný volajícím chystá nakonec uvolnit (vnější zámek zápisu).

(Zděděno od AsyncReaderWriterLock)
OnCriticalFailure(Exception)

Vyvoláno, když zámek zjistí vnitřní chybu nebo neplatný způsob použití, který značí závažnou chybu, která by měla být okamžitě hlášena aplikaci nebo snížit proces, aby se zabránilo zablokování nebo poškození dat.

(Zděděno od AsyncReaderWriterLock)
OnCriticalFailure(String)

Vyvoláno, když zámek zjistí vnitřní chybu nebo neplatný způsob použití, který značí závažnou chybu, která by měla být okamžitě hlášena aplikaci nebo snížit proces, aby se zabránilo zablokování nebo poškození dat.

(Zděděno od AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

Vyvoláno po uvolnění exkluzivního zámku, ale předtím, než někdo má šanci vstoupit do zámku.

OnUpgradeableReadLockReleased()

Vyvoláno při uvolnění upgradovatelného zámku čtení na nejvyšší úrovni a ponechání zbývajícího zámku (zápisu).

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 jedním vláknem.

ReadLockAsync(CancellationToken)

Získá zámek pro čtení, asynchronně čeká na zámek, pokud není okamžitě dostupný.

SetAllResourcesToUnknownState()

Nastaví všechny prostředky, které se mají považovat 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á upgradovatelný zámek pro čtení, asynchronně čeká na zámek, pokud není okamžitě dostupný.

(Zděděno od AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Získá zámek pro čtení, asynchronně čeká na zámek, pokud není okamžitě dostupný.

UpgradeableReadLockAsync(CancellationToken)

Získá upgradovatelný zámek pro čtení, asynchronně čeká na zámek, pokud není okamžitě dostupný.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Získá zámek zápisu, asynchronně čeká na zámek, pokud není okamžitě dostupný.

(Zděděno od AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Získá zámek zápisu, asynchronně čeká na zámek, pokud není okamžitě dostupný.

WriteLockAsync(CancellationToken)

Získá zámek zápisu, asynchronně čeká na zámek, pokud není okamžitě dostupný.

Explicitní implementace rozhraní

Name Description
IHangReportContributor.GetHangReport()

Přispívá k datům 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 všechny členy.