EventSource 回调行为

对于 EventCommand.Disable,在发出回调之前,EventSource 现在标记为禁用。

旧行为

以前,EventSource.OnEventCommand(EventCommandEventArgs) 回调是在设置 m_eventSourceEnabled=false 之前为 EventCommand.Disable 发出的。

这意味着 EventSource.IsEnabled() 在用户 EventSourceOnEventCommand(EventCommandEventArgs) 回调中返回了 true,即使该命令导致 EventSource 被禁用。 但是,回调发生在关闭调度事件的功能之后,因此即使 EventSource 尝试触发事件,也不会写入事件。

新行为

现在,在为 EventCommand.Disable 发出回调之前,EventSource 被标记为禁用。

引入的版本

  • .NET 6 服务
  • .NET 7 服务

中断性变更的类型

此更改为行为更改

更改原因

此变更对于支持多个 EventCounter 实例是必需的。 多个客户已请求拥有多个实例的功能。

此外,EventCommand.Enable 始终发出一致的视图:EventSource.IsEnabled() 准确报告启用状态,EventSource 可以从 OnEventCommand 回调写入事件。 此变更使 EventCommand.Disable 行为与 EventCommand.Enable 一致。

不太可能出现需要以前行为的情况,而且没有办法还原这种行为。

受影响的 API