这些运行时事件捕获有关等待句柄的信息。 它们可用于调查线程池饥饿问题。 有关如何将这些事件用于诊断目的的详细信息,请参阅 日志记录和跟踪 .NET 应用程序
WaitHandleWaitStart 事件
此事件在等待句柄的等待作开始时发出。 下面是可发出此事件的托管方法的非详尽列表:
Monitor.Wait
-
Monitor.Enter
或 C# lock 关键字
ManualResetEvent.WaitOne
Task.Wait
引发事件的关键字 |
级别 |
WaitHandleKeyword (0x40000000000) |
详细 (5) |
下表显示了事件信息。
事件 / 活动 |
事件编号 |
在 |
WaitHandleWaitStart |
301 |
等待开始。 |
字段名称 |
数据类型 |
DESCRIPTION |
WaitSource |
win:UInt8 |
0x0 - 其他源。
0x1 - 等待源自通过 Monitor.Wait 该方法的托管代码。 |
AssociatedObjectID |
win:Pointer |
关联对象的地址(例如代码lock(obj) {} 中的地址obj )。 |
ClrInstanceID |
win:UInt16 |
CoreCLR 实例的唯一 ID。 |
WaitHandleWaitStop 事件
此事件在等待句柄的等待作结束时发出。
引发事件的关键字 |
级别 |
WaitHandleKeyword (0x40000000000) |
详细 (5) |
下表显示了事件信息。
事件 / 活动 |
事件编号 |
在 |
WaitHandleWaitStop |
302 |
等待停止。 |
字段名称 |
数据类型 |
DESCRIPTION |
ClrInstanceID |
win:UInt16 |
CoreCLR 实例的唯一 ID。 |