EventSource-Rückrufverhalten

Bei einem EventCommand.Disable wird die EventSource jetzt als deaktiviert markiert bevor der Rückruf ausgegeben wird.

Vorheriges Verhalten

Zuvor wurde der EventSource.OnEventCommand(EventCommandEventArgs)-Rückruf für einen EventCommand.Disable ausgegeben, bevor m_eventSourceEnabled=false festgelegt wurde.

Dies bedeutet, dass EventSource.IsEnabled()true im Rückruf OnEventCommand(EventCommandEventArgs) für einen Benutzer EventSource zurückgegeben hat, auch wenn der Befehl dazu geführt hat, dass die EventSource deaktiviert wurde. Der Rückruf erfolgte, nachdem die Möglichkeit zum Senden von Ereignissen deaktiviert wurde. Selbst wenn ein EventSource versuchte, ein Ereignis auszulösen, wurde er nicht geschrieben.

Neues Verhalten

Jetzt wird EventSource als deaktiviert markiert, bevor der Rückruf für EventCommand.Disable ausgeführt wird.

Eingeführte Version

  • .NET 6-Wartung
  • .NET 7-Wartung

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für Änderung

Diese Änderung war erforderlich, um mehrere EventCounter Instanzen zu unterstützen. Die Möglichkeit, mehrere Instanzen zu haben, wurde von mehreren Kunden angefordert.

Darüber hinaus hat EventCommand.Enable immer eine konsistente Sichtweise vertreten: EventSource.IsEnabled() meldet präzise den aktivierten Status und EventSource kann Ereignisse aus dem OnEventCommand Rückruf schreiben. Diese Änderung macht das EventCommand.Disable Verhalten konsistent mit EventCommand.Enable.

Es ist unwahrscheinlich, dass es ein Szenario gibt, in dem das vorherige Verhalten gewünscht wird, und es gibt keine Möglichkeit, das Verhalten wiederhergestellt zu werden.

Betroffene APIs