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 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
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.