EventSource-återanropsbeteende

För en EventCommand.Disable, är EventSource nu markerad som inaktiverad innan återanropet utfärdas.

Tidigare beteende

Tidigare utfärdades återanropet EventSource.OnEventCommand(EventCommandEventArgs) för en EventCommand.Disable innan inställningen av m_eventSourceEnabled=false.

Detta innebar att EventSource.IsEnabled() returnerade true i OnEventCommand(EventCommandEventArgs)-återanropet för användaren EventSource, även om kommandot ledde till att EventSource blev inaktiverad. Återanropet inträffade dock efter att förmågan att skicka händelser inaktiverades, så även om en EventSource försökte utlösa en händelse skrevs den inte.

Nytt beteende

Nu är EventSource markerad som inaktiverad innan återanropet utfärdas för en EventCommand.Disable.

Version lanserad

  • .NET 6 underhåll och uppdateringar
  • .NET 7-underhållstjänst

Typ av brytande ändring

Den här ändringen är en beteendeförändring.

Orsak till ändring

Den här ändringen var nödvändig för att stödja flera EventCounter instanser. Möjligheten att ha flera instanser har begärts av flera kunder.

Dessutom har EventCommand.Enable alltid utfärdat en konsekvent vy: EventSource.IsEnabled() rapporterar korrekt den aktiverade status och EventSource kan skriva händelser från OnEventCommand-återanropet. Den här ändringen gör beteendet EventCommand.Disable konsekvent med EventCommand.Enable.

Det är osannolikt att det finns ett scenario där det tidigare beteendet är önskat och det inte finns något sätt att återställa beteendet.

Berörda API:er