EventSource 回呼行為

針對 EventCommand.DisableEventSource 現在會在發出回呼之前標示為停用。

先前的行為

在過往,在設定 m_eventSourceEnabled=false 之前,已針對 EventCommand.Disable 發出 EventSource.OnEventCommand(EventCommandEventArgs) 回呼。

這表示在 EventSource 使用者的 OnEventCommand(EventCommandEventArgs) 回呼中 EventSource.IsEnabled() 會傳回 true,即使此命令導致 EventSource 停用也一樣。 不過,回呼會在分派事件的功能關閉之後發生,因此即使 EventSource 嘗試引發事件,也不會寫入該事件。

新的行為

現在,會在針對 EventCommand.Disable 發出回呼之前,將 EventSource 標示為已停用。

導入的版本

  • .NET 6 服務
  • .NET 7 服務

中斷性變更的類型

此變更為行為變更

變更原因

需要這項變更才能支援多個 EventCounter 執行個體。 多個客戶已要求擁有多個執行個體的功能。

此外,EventCommand.Enable 一律會發出一致的檢視:EventSource.IsEnabled() 準確地報告啟用的狀態,而且 EventSource 可以從 OnEventCommand 回呼寫入事件。 這項變更會使 EventCommand.Disable 行為與 EventCommand.Enable 保持一致。

不太可能出現需要先前行為的情節,而且無法還原該行為。

受影響的 API