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

获取用于同步对此实例字段的访问的对象。

(继承自 AsyncReaderWriterLock)

方法

Complete()

导致拒绝新的顶级锁定请求和 Completion 任务在释放所有发布的锁定后转换到已完成状态。

(继承自 AsyncReaderWriterLock)
Dispose()

非阻塞锁允许并发访问、独占访问或可升级为独占访问的并发访问,特别允许必须为并发或独占访问准备的资源。

(继承自 AsyncReaderWriterLock)
Dispose(Boolean)

释放此实例持有的托管和非托管资源。

(继承自 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)

适用于

线程安全性

此类型对所有成员都是线程安全的。