.NET 运行时等待处理事件

这些运行时事件捕获有关等待句柄的信息。 它们可用于调查线程池饥饿问题。 有关如何将这些事件用于诊断目的的详细信息,请参阅 日志记录和跟踪 .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。