다음을 통해 공유


AsyncReaderWriterResourceLock<TMoniker,TResource> 클래스

정의

동시 액세스, 배타적 액세스 또는 배타적 액세스로 업그레이드할 수 있는 동시 액세스를 허용하여 동시 또는 배타적 액세스를 준비해야 하는 리소스에 대해 특별히 허용하는 비차단 잠금입니다.

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

형식 매개 변수

TMoniker

리소스를 식별하는 모니커의 형식입니다.

TResource

이 잠금에 의해 액세스하기 위해 발급된 리소스의 유형입니다.

상속
AsyncReaderWriterResourceLock<TMoniker,TResource>

생성자

AsyncReaderWriterResourceLock<TMoniker,TResource>()

AsyncReaderWriterResourceLock<TMoniker,TResource> 클래스의 새 인스턴스를 초기화합니다.

AsyncReaderWriterResourceLock<TMoniker,TResource>(Boolean)

AsyncReaderWriterResourceLock<TMoniker,TResource> 클래스의 새 인스턴스를 초기화합니다.

AsyncReaderWriterResourceLock<TMoniker,TResource>(JoinableTaskContext, Boolean)

AsyncReaderWriterResourceLock<TMoniker,TResource> 클래스의 새 인스턴스를 초기화합니다.

속성

AmbientLock

호출자의 실행 컨텍스트에서 보유한 잠금을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
CanCurrentThreadHoldActiveLock

현재 스레드가 활성 잠금을 유지할 수 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
CaptureDiagnostics

교착 상태 진단 등에 유용한 정보를 수집하기 위해 추가 리소스를 사용해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 AsyncReaderWriterLock)
Completion

완료 시 이 잠금에서 더 이상 잠금을 발행하지 않음을 나타내는 작업을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
DeadlockCheckTimeout

보류 중인 기록기 잠금 및 판독기 잠금이 교착 상태를 형성하는지 여부를 검사 시간 지연을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsAnyLockHeld

호출자가 모든 종류의 잠금을 보유하고 호출자의 컨텍스트를 고려하여 즉시 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsAnyPassiveLockHeld

호출자 컨텍스트의 잠금 호환성과 관계없이 호출자가 잠금을 보유하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsPassiveReadLockHeld

호출자 컨텍스트의 잠금 호환성과 관계없이 호출자가 읽기 잠금을 보유하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsPassiveUpgradeableReadLockHeld

호출자 컨텍스트의 잠금 호환성과 관계없이 호출자가 업그레이드 가능한 읽기 잠금을 보유하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsPassiveWriteLockHeld

호출자 컨텍스트의 잠금 호환성과 관계없이 호출자가 쓰기 잠금을 보유하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsReadLockHeld

호출자가 읽기 잠금을 보유하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsUnsupportedSynchronizationContext

현재 SynchronizationContext가 이 잠금에서 지원되지 않는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsUpgradeableReadLockHeld

호출자가 업그레이드 가능한 읽기 잠금을 보유하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
IsWriteLockHeld

호출자가 쓰기 잠금을 보유하는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
NoMessagePumpSynchronizationContext

SynchronizationContext 가 적용될 때 호출 스레드의 동기 블록 중에 실행할 수 있는 메시지 펌프를 표시하지 않는 을 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)
SyncObject

이 instance 필드에 대한 액세스를 동기화하는 데 사용되는 개체를 가져옵니다.

(다음에서 상속됨 AsyncReaderWriterLock)

메서드

Complete()

새로운 최상위 잠금 요청이 거부되고 발행된 잠금이 해제된 후 Completion 작업이 완료된 상태로 전환됩니다.

(다음에서 상속됨 AsyncReaderWriterLock)
Dispose()

동시 액세스, 배타적 액세스 또는 배타적 액세스로 업그레이드할 수 있는 동시 액세스를 허용하여 동시 또는 배타적 액세스를 준비해야 하는 리소스에 대해 특별히 허용하는 비차단 잠금입니다.

(다음에서 상속됨 AsyncReaderWriterLock)
Dispose(Boolean)

이 instance 보유한 관리되는 리소스와 관리되지 않는 리소스를 삭제합니다.

(다음에서 상속됨 AsyncReaderWriterLock)
GetAggregateLockFlags()

중첩된 모든 잠금에 대한 잠금 플래그의 집계를 반환합니다.

GetHangReport()

중단 보고서에 대한 데이터를 적용합니다.

(다음에서 상속됨 AsyncReaderWriterLock)
GetResourceAsync(TMoniker, CancellationToken)

지정된 모니커를 사용하여 리소스를 검색합니다.

GetTaskSchedulerForReadLockRequest()

잠금을 획득할 때 연속 작업을 실행할 작업 스케줄러를 가져옵니다. AsyncReaderWriterLock은 특수 SynchronizationContext 를 사용하여 배타적 잠금을 처리하고 제공된 작업 스케줄러를 무시하므로 읽기 잠금 시나리오에서만 사용됩니다. 이 메서드는 현재 실행 컨텍스트에 따라 선택할 TaskScheduler 수 있도록 읽기 잠금을 대기하기 위해 실행 컨텍스트 내에서 호출됩니다. 참고: 작업 스케줄러는 나중에 잠금이 실행될 때만 사용됩니다. true를 반환할 때 CanCurrentThreadHoldActiveLock 잠금이 즉시 실행되면 무시됩니다.

(다음에서 상속됨 AsyncReaderWriterLock)
GetTaskSchedulerToPrepareResourcesForConcurrentAccess(TResource)

동시 액세스를 위한 리소스를 준비하는 작업 스케줄러를 가져옵니다.

HideLocks()

반환된 값을 삭제할 때까지 호출자의 잠금을 사용하거나 표시하지 않도록 합니다.

(다음에서 상속됨 AsyncReaderWriterLock)
LockStackContains(AsyncReaderWriterLock+LockFlags, AsyncReaderWriterLock+LockHandle)

잠금 스택의 모든 잠금에서 집계된 플래그가 지정된 플래그를 충족하는지 여부를 확인합니다.

(다음에서 상속됨 AsyncReaderWriterLock)
OnBeforeExclusiveLockReleasedAsync()

마지막 쓰기 잠금이 해제될 때 발생합니다.

(다음에서 상속됨 AsyncReaderWriterLock)
OnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock+LockHandle)

잠금이 해제될 때 발생합니다.

(다음에서 상속됨 AsyncReaderWriterLock)
OnBeforeWriteLockReleased(Func<Task>)

호출자가 보유한 쓰기 잠금이 궁극적으로 해제될 때 호출할 콜백을 등록합니다(가장 바깥쪽 쓰기 잠금).

(다음에서 상속됨 AsyncReaderWriterLock)
OnCriticalFailure(Exception)

잠금이 내부 오류 또는 잘못된 사용 패턴을 감지하여 애플리케이션에 즉시 보고해야 하는 심각한 결함을 나타내거나 중단 또는 데이터 손상을 방지하기 위해 프로세스를 중단할 때 호출됩니다.

(다음에서 상속됨 AsyncReaderWriterLock)
OnCriticalFailure(String)

잠금이 내부 오류 또는 잘못된 사용 패턴을 감지하여 애플리케이션에 즉시 보고해야 하는 심각한 결함을 나타내거나 중단 또는 데이터 손상을 방지하기 위해 프로세스를 중단할 때 호출됩니다.

(다음에서 상속됨 AsyncReaderWriterLock)
OnExclusiveLockReleasedAsync()

단독 잠금이 해제된 후 호출되지만 누군가가 잠금을 입력할 기회가 있기 전에 호출됩니다.

OnUpgradeableReadLockReleased()

최상위 업그레이드 가능한 읽기 잠금이 해제되어 남은(쓰기) 잠금을 남기지 않을 때 호출됩니다.

PrepareResourceForConcurrentAccessAsync(TResource, CancellationToken)

동시 액세스할 리소스를 준비합니다.

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

하나의 스레드로 액세스할 리소스를 준비합니다.

ReadLockAsync(CancellationToken)

읽기 잠금을 가져오고, 즉시 사용할 수 없는 경우 잠금을 비동기적으로 기다립니다.

SetAllResourcesToUnknownState()

알 수 없는 상태로 간주할 모든 리소스를 설정합니다.

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

로드된 리소스가 일부 조건자를 충족하는 경우 잠금에서 검색된 것으로 표시합니다.

SetResourceAsAccessed(TResource)

리소스를 잠금 상태에서 가져온 것으로 표시합니다.

UpgradeableReadLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

읽기 잠금을 가져오고, 즉시 사용할 수 없는 경우 잠금을 비동기적으로 기다립니다.

(다음에서 상속됨 AsyncReaderWriterLock)
UpgradeableReadLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

읽기 잠금을 가져오고, 즉시 사용할 수 없는 경우 잠금을 비동기적으로 기다립니다.

UpgradeableReadLockAsync(CancellationToken)

즉시 사용할 수 없는 경우 잠금을 비동기적으로 기다리는 업그레이드 가능한 읽기 잠금을 가져옵니다.

WriteLockAsync(AsyncReaderWriterLock+LockFlags, CancellationToken)

쓰기 잠금을 가져오고, 즉시 사용할 수 없는 경우 잠금을 비동기적으로 기다립니다.

(다음에서 상속됨 AsyncReaderWriterLock)
WriteLockAsync(AsyncReaderWriterResourceLock<TMoniker,TResource>.LockFlags, CancellationToken)

쓰기 잠금을 가져오고, 즉시 사용할 수 없는 경우 잠금을 비동기적으로 기다립니다.

WriteLockAsync(CancellationToken)

쓰기 잠금을 가져오고, 즉시 사용할 수 없는 경우 잠금을 비동기적으로 기다립니다.

명시적 인터페이스 구현

IHangReportContributor.GetHangReport()

중단 보고서에 대한 데이터를 적용합니다.

(다음에서 상속됨 AsyncReaderWriterLock)

적용 대상

스레드 보안

이 형식은 모든 멤버에 대해 스레드로부터 안전합니다.