Język

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 pseudonimu identyfikującego zasób.

TResource

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

Dziedziczenie
AsyncReaderWriterResourceLock<TMoniker,TResource>

Konstruktory

Nazwa Opis
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

Nazwa Opis
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 podczas diagnozowania 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 w celu sprawdzenia, czy oczekująca blokada modułu zapisywania i czytnik blokuje zakleszczenie.

(Odziedziczone po AsyncReaderWriterLock)
IsAnyLockHeld

Pobiera wartość wskazującą, czy jakikolwiek rodzaj blokady jest utrzymywany przez obiekt wywołujący i może być natychmiast używany, biorąc pod uwagę kontekst obiektu wywołującego.

(Odziedziczone po AsyncReaderWriterLock)
IsAnyPassiveLockHeld

Pobiera wartość wskazującą, czy jakikolwiek rodzaj blokady jest utrzymywany 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żąca wartość SynchronizationContext jest taka, która nie jest obsługiwana 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

Pobiera element SynchronizationContext , który po zastosowaniu pomija wszystkie 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

Nazwa Opis
Complete()

Powoduje odrzucenie nowych żądań blokowania najwyższego poziomu i Completion przejście zadania do stanu ukończenia 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 dla raportu zawieszenia.

(Odziedziczone po AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

Pobiera zasób z określonym pseudonimem.

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ń, dlatego jest używany tylko w scenariuszu blokady odczytu. Ta metoda jest wywoływana w kontekście wykonywania, aby czekać na blokadę odczytu, dzięki czemu może 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 jest wystawiana natychmiast po CanCurrentThreadHoldActiveLock zwracaniu wartości true, zostanie ona zignorowana.

(Odziedziczone po AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

Pobiera harmonogram zadań w celu przygotowania zasobu do współbieżnego dostępu.

HideLocks()

Zapobiega używaniu lub widoczności blokad obiektu wywołującego do momentu usunięcia zwróconej wartości.

(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 ma zostać zwolniona ostatnia blokada zapisu.

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

Wyzwolony, gdy jest zwalniana blokada.

(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ływana, gdy blokada wykryje błąd wewnętrzny lub nielegalny wzorzec 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ływana, gdy blokada wykryje błąd wewnętrzny lub nielegalny wzorzec 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ływana 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 pewne predykat.

SetResourceAsAccessed(TResource)

Oznacza zasób jako pobrany w ramach blokady.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

Uzyskuje blokadę odczytu z możliwością uaktualnienia, 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ę zapisu, asynchronicznie oczekującą na blokadę, jeśli nie jest natychmiast dostępna.

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

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

WriteLockAsync(CancellationToken)

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

Jawne implementacje interfejsu

Nazwa Opis
IHangReportContributor.GetHangReport()

Współtworzy dane dla raportu zawieszenia.

(Odziedziczone po AsyncReaderWriterLock)

Dotyczy

Bezpieczeństwo wątkowe

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