.NET 运行时争用事件
这些运行时事件使用 Monitor.Enter
或 C# 锁关键字等捕获有关监视器锁争用的信息。 有关如何将这些事件用于诊断的详细信息,请参阅对 .NET 应用程序进行日志记录和跟踪
ContentionStart_V2 事件
在监视器锁争用开始时发出此事件。
引发事件的关键字 |
Level |
ContentionKeyword (0x4000) |
信息性 (4) |
下表显示了事件信息。
事件 |
事件 ID |
在发生以下情况时引发 |
ContentionStart_V2 |
81 |
监视器锁争用开始。 |
字段名 |
数据类型 |
说明 |
Flags |
win:UInt8 |
0 表示托管;1 表示本机。 |
ClrInstanceID |
win:UInt16 |
CoreCLR 实例的唯一 ID。 |
LockObjectID |
win:Pointer |
锁定对象的地址。 |
LockOwnerThreadID |
win:Pointer |
拥有锁定的线程的地址。 |
ContentionStop_V1 事件
在监视器锁争用结束时发出此事件。
引发事件的关键字 |
Level |
ContentionKeyword (0x4000) |
信息性 (4) |
下表显示了事件信息。
事件 |
事件 ID |
在发生以下情况时引发 |
ContentionStop_V1 |
91 |
监视器锁争用结束。 |
字段名 |
数据类型 |
说明 |
Flags |
win:UInt8 |
0 表示托管;1 表示本机。 |
ClrInstanceID |
win:UInt16 |
CoreCLR 实例的唯一 ID。 |
DurationNs |
win:Double |
争用的持续时间(以纳秒为单位)。 |