Udostępnij za pośrednictwem


AsyncReaderWriterResourceLock<TMoniker,TResource> Klasa

Definicja

Blokada nieblokująca, która umożliwia współbieżny dostęp, wyłączny dostęp lub współbieżność z możliwościami uaktualniania do wyłącznego dostępu, dzięki czemu specjalne uprawnienia dla zasobów, które muszą być przygotowane na dostęp współbieżny lub wyłączny.

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 moniker identyfikujący zasób.

TResource

Typ zasobu wystawionego na potrzeby dostępu przez tę blokadę.

Dziedziczenie
AsyncReaderWriterResourceLock<TMoniker,TResource>

Konstruktory

AsyncReaderWriterResourceLock<TMoniker,TResource>()

Inicjuje nowe wystąpienie klasy AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

Inicjuje nowe wystąpienie klasy AsyncReaderWriterResourceLock<TMoniker,TResource>.

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

Inicjuje nowe wystąpienie klasy AsyncReaderWriterResourceLock<TMoniker,TResource>.

Właściwości

AmbientLock

Pobiera blokadę przechowywaną przez kontekst wykonywania obiektu wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

Pobiera wartość wskazującą, czy bieżący wątek może przechowywać aktywną blokadę.

(Odziedziczone po AsyncReaderWriterLock)
CaptureDiagnostics

Pobiera lub ustawia wartość wskazującą, czy należy wydać dodatkowe zasoby w celu zbierania informacji, które byłyby przydatne w diagnozowaniu zakleszczeń itp.

(Odziedziczone po AsyncReaderWriterLock)
Completion

Pobiera zadanie, którego ukończenie sygnalizuje, że ta blokada nie będzie już wystawiać blokad.

(Odziedziczone po AsyncReaderWriterLock)
DeadlockCheckTimeout

Pobiera opóźnienie czasu, aby sprawdzić, czy oczekująca blokada zapisywania i czytnik blokuje zakleszczenie.

(Odziedziczone po AsyncReaderWriterLock)
IsAnyLockHeld

Pobiera wartość wskazującą, czy jakikolwiek rodzaj blokady jest przechowywany przez obiekt wywołujący i może być natychmiast używany przy użyciu kontekstu obiektu wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Pobiera wartość wskazującą, czy jakikolwiek rodzaj blokady jest przechowywany przez obiekt wywołujący bez względu na zgodność blokady kontekstu obiektu wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
IsPassiveReadLockHeld

Pobiera wartość wskazującą, czy blokada odczytu jest przechowywana przez obiekt wywołujący bez względu na zgodność blokady kontekstu obiektu wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

Pobiera wartość wskazującą, czy blokada odczytu z możliwością uaktualnienia jest przechowywana przez obiekt wywołujący bez względu na zgodność blokady kontekstu obiektu wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
IsPassiveWriteLockHeld

Pobiera wartość wskazującą, czy blokada zapisu jest przechowywana przez obiekt wywołujący bez względu na zgodność blokady kontekstu obiektu wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
IsReadLockHeld

Pobiera wartość wskazującą, czy obiekt wywołujący przechowuje blokadę odczytu.

(Odziedziczone po AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

Pobiera wartość wskazującą, czy bieżący element SynchronizationContext jest taki, który nie jest obsługiwany przez tę blokadę.

(Odziedziczone po AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

Pobiera wartość wskazującą, czy obiekt wywołujący przechowuje blokadę odczytu z możliwością uaktualnienia.

(Odziedziczone po AsyncReaderWriterLock)
IsWriteLockHeld

Pobiera wartość wskazującą, czy obiekt wywołujący przechowuje blokadę zapisu.

(Odziedziczone po AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

SynchronizationContext Pobiera, który po zastosowaniu pomija wszelkie pompy komunikatów, które mogą być uruchamiane podczas synchronicznych bloków wątku wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
SyncObject

Pobiera obiekt używany do synchronizowania dostępu do pól tego wystąpienia.

(Odziedziczone po AsyncReaderWriterLock)

Metody

Complete()

Powoduje odrzucenie nowych żądań blokad najwyższego poziomu, a Completion zadanie przejścia do stanu ukończonego po zwolnieniu wszystkich wystawionych blokad.

(Odziedziczone po AsyncReaderWriterLock)
Dispose()

Blokada nieblokująca, która umożliwia współbieżny dostęp, wyłączny dostęp lub współbieżność z możliwościami uaktualniania do wyłącznego dostępu, dzięki czemu specjalne uprawnienia dla zasobów, które muszą być przygotowane na dostęp współbieżny lub wyłączny.

(Odziedziczone po AsyncReaderWriterLock)
Dispose(Boolean)

Usuwa zarządzane i niezarządzane zasoby przechowywane przez to wystąpienie.

(Odziedziczone po AsyncReaderWriterLock)
GetAggregateLockFlags()

Zwraca agregację flag blokady dla wszystkich zagnieżdżonych blokad.

GetHangReport()

Współtworzy dane raportu zawieszenia.

(Odziedziczone po AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

Pobiera zasób z określonym monikerem.

GetTaskSchedulerForReadLockRequest()

Pobierz harmonogram zadań, aby wykonać kontynuację po uzyskaniu blokady. AsyncReaderWriterLock używa specjalnej SynchronizationContext funkcji do obsługi blokad wyłącznych i zignoruje podany harmonogram zadań, więc jest on używany tylko w scenariuszu blokady odczytu. Ta metoda jest wywoływana w kontekście wykonywania, aby czekać na blokadę odczytu, aby mogła być pobierana TaskScheduler na podstawie bieżącego kontekstu wykonywania. Uwaga: harmonogram zadań jest używany tylko wtedy, gdy blokada zostanie wydana później. Jeśli blokada zostanie wystawiona natychmiast po CanCurrentThreadHoldActiveLock zwracaniu wartości true, zostanie zignorowana.

(Odziedziczone po AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Pobiera harmonogram zadań, aby przygotować zasób na potrzeby dostępu współbieżnego.

HideLocks()

Zapobiega używaniu lub widoczności blokad obiektu wywołującego, dopóki zwrócona wartość nie zostanie usunięta.

(Odziedziczone po AsyncReaderWriterLock)
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle)

Sprawdza, czy zagregowane flagi ze wszystkich blokad w stosie blokady spełniają określone flagi.

(Odziedziczone po AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

Wyzwolony, gdy ostatnia blokada zapisu ma zostać zwolniona.

(Odziedziczone po AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

Wyzwolony po zwolnieniu blokady.

(Odziedziczone po AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

Rejestruje wywołanie zwrotne, które ma być wywoływane, gdy blokada zapisu przechowywana przez obiekt wywołujący ma zostać ostatecznie zwolniona (najbardziej zewnętrzna blokada zapisu).

(Odziedziczone po AsyncReaderWriterLock)
OnCriticalFailure(Exception)

Wywoływane po wykryciu błędu wewnętrznego lub nielegalnego wzorca użycia, który wskazuje na poważną wadę, która powinna zostać natychmiast zgłoszona do aplikacji i/lub obniżyć proces, aby uniknąć zawieszenia lub uszkodzenia danych.

(Odziedziczone po AsyncReaderWriterLock)
OnCriticalFailure(String)

Wywoływane po wykryciu błędu wewnętrznego lub nielegalnego wzorca użycia, który wskazuje na poważną wadę, która powinna zostać natychmiast zgłoszona do aplikacji i/lub obniżyć proces, aby uniknąć zawieszenia lub uszkodzenia danych.

(Odziedziczone po AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

Wywoływane po zwolnieniu blokady wyłącznej, ale zanim ktoś ma szansę wejść do blokady.

OnUpgradeableReadLockReleased()

Wywoływane po zwolnieniu blokady odczytu z możliwością uaktualnienia najwyższego poziomu, nie pozostawiając pozostałej blokady (zapisu).

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

Przygotowuje zasób na potrzeby dostępu współbieżnego.

PrepareResourceForExclusiveAccessAsync(TResource, AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Przygotowuje zasób do uzyskiwania dostępu przez jeden wątek.

ReadLockAsync(CancellationToken)

Uzyskuje blokadę odczytu, asynchronicznie oczekując na blokadę, jeśli nie jest natychmiast dostępna.

SetAllResourcesToUnknownState()

Ustawia wszystkie zasoby, które mają być brane pod uwagę w nieznanym stanie.

SetResourceAsAccessed(Func<TResource,Object,Boolean>, Object)

Oznacza wszystkie załadowane zasoby jako pobrane w ramach blokady, jeśli spełniają one niektóre predykat.

SetResourceAsAccessed(TResource)

Oznacza zasób jako pobrany w ramach blokady.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Uzyskuje blokadę odczytu, asynchronicznie oczekując na blokadę, jeśli nie jest natychmiast dostępna.

(Odziedziczone po AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Uzyskuje blokadę odczytu, asynchronicznie oczekując na blokadę, jeśli nie jest natychmiast dostępna.

UpgradeableReadLockAsync(CancellationToken)

Uzyskuje blokadę odczytu z możliwością uaktualnienia, asynchronicznie oczekując na blokadę, jeśli nie jest natychmiast dostępna.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Uzyskuje blokadę odczytu, asynchronicznie oczekując na blokadę, jeśli nie jest natychmiast dostępna.

(Odziedziczone po AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

Uzyskuje blokadę odczytu, asynchronicznie oczekując na blokadę, jeśli nie jest natychmiast dostępna.

WriteLockAsync(CancellationToken)

Uzyskuje blokadę odczytu, asynchronicznie oczekując na blokadę, jeśli nie jest natychmiast dostępna.

Jawne implementacje interfejsu

IHangReportContributor.GetHangReport()

Współtworzy dane raportu zawieszenia.

(Odziedziczone po AsyncReaderWriterLock)

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkowo dla wszystkich elementów członkowskich.