AsyncReaderWriterLock 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一种非阻塞锁,允许并发访问、独占访问或并发且可升级到独占访问。
public ref class AsyncReaderWriterLock : IDisposable, Microsoft::VisualStudio::Threading::IHangReportContributor
public class AsyncReaderWriterLock : IDisposable, Microsoft.VisualStudio.Threading.IHangReportContributor
type AsyncReaderWriterLock = class
interface IHangReportContributor
interface IDisposable
Public Class AsyncReaderWriterLock
Implements IDisposable, IHangReportContributor
- 继承
-
AsyncReaderWriterLock
- 派生
- 实现
注解
我们必须使用自定义可等待项,而不是简单地返回 Task{LockReleaser},因为我们必须在接收锁的人员的上下文中设置 CallContext 数据,这要求我们在延续开始时执行代码 (无论是否生成) 。
构造函数
属性
AmbientLock |
获取由调用方的执行上下文占用的锁定。 |
CanCurrentThreadHoldActiveLock |
获取一个值,该值指示是否允许当前线程持有活动锁。 |
CaptureDiagnostics |
获取或设置一个值,该值指示是否应使用其他资源来收集对诊断死锁等有用的信息。 |
Completion |
获取一个任务,其完成标志着此锁将不再发出锁定。 |
DeadlockCheckTimeout |
获取一个时间延迟,以检查挂起的写入器锁和读取器锁是否形成死锁。 |
IsAnyLockHeld |
获取一个值,该值指示调用方是否持有任何类型的锁,并且可以在给定调用方上下文的情况下立即使用。 |
IsAnyPassiveLockHeld |
获取一个值,该值指示调用方是否持有任何类型的锁,而不考虑调用方上下文的锁兼容性。 |
IsPassiveReadLockHeld |
获取一个值,该值指示调用方是否持有读取锁,而不考虑调用方上下文的锁兼容性。 |
IsPassiveUpgradeableReadLockHeld |
获取一个值,该值指示调用方是否持有可升级的读取锁,而不考虑调用方上下文的锁兼容性。 |
IsPassiveWriteLockHeld |
获取一个值,该值指示调用方是否持有写入锁,而不考虑调用方上下文的锁兼容性。 |
IsReadLockHeld |
获取一个值,该值指示调用方是否持有读取锁。 |
IsUnsupportedSynchronizationContext |
获取一个值,该值指示当前 SynchronizationContext 是否为此锁不支持的值。 |
IsUpgradeableReadLockHeld |
获取一个值,该值指示调用方是否持有可升级的读取锁。 |
IsWriteLockHeld |
获取一个值,该值指示调用方是否持有写入锁。 |
NoMessagePumpSynchronizationContext |
获取一个 SynchronizationContext ,应用时,它将禁止在调用线程的同步块期间可能运行的任何消息泵。 |
SyncObject |
获取用于同步对此实例字段的访问的对象。 |
方法
显式接口实现
IHangReportContributor.GetHangReport() |
提供挂起报告数据。 |
适用于
线程安全性
此类型对所有成员都是线程安全的。