Freigeben über


EventSource-Rückrufverhalten

Für ein EventCommand.Disable ist der 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 die EventSource als deaktiviert markiert, bevor der Rückruf für einen EventCommand.Disable ausgegeben wird.

Eingeführt in Version

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

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Ä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 Ansicht ausgegeben: EventSource.IsEnabled() meldet exakt den aktivierten Status, und EventSource kann Ereignisse aus dem OnEventCommand-Rückruf schreiben. Durch diese Änderung ist das Verhalten von EventCommand.Disable konsistent mit EventCommand.Enable.

Es ist unwahrscheinlich, dass es ein Szenario gibt, in dem das vorherige Verhalten gewünscht ist, und es gibt keine Möglichkeit, das Verhalten rückgängig machen.

Betroffene APIs