EventSource 回调行为
对于 EventCommand.Disable,在发出回调之前,EventSource 现在标记为禁用。
旧行为
以前,EventSource.OnEventCommand(EventCommandEventArgs) 回调是在设置 m_eventSourceEnabled=false
之前为 EventCommand.Disable 发出的。
这意味着 EventSource.IsEnabled() 在用户 EventSource 的 OnEventCommand(EventCommandEventArgs) 回调中返回了 true
,即使该命令导致 EventSource
被禁用。 但是,回调发生在关闭调度事件的功能之后,因此即使 EventSource
尝试触发事件,也不会写入事件。
新行为
现在,在为 EventCommand.Disable 发出回调之前,EventSource 被标记为禁用。
引入的版本
- .NET 6 服务
- .NET 7 服务
中断性变更的类型
此更改为行为更改。
更改原因
此变更对于支持多个 EventCounter 实例是必需的。 多个客户已请求拥有多个实例的功能。
此外,EventCommand.Enable 始终发出一致的视图:EventSource.IsEnabled() 准确报告启用状态,EventSource
可以从 OnEventCommand
回调写入事件。 此变更使 EventCommand.Disable
行为与 EventCommand.Enable
一致。
建议的操作
不太可能出现需要以前行为的情况,而且没有办法还原这种行为。