Comportamento di callback di EventSource

Per un comando EventCommand.Disable, l'oggetto EventSource è ora contrassegnato come disabilitato prima che venga generato il callback.

Comportamento precedente

In precedenza, il callback EventSource.OnEventCommand(EventCommandEventArgs) per EventCommand.Disable veniva generato prima di impostare m_eventSourceEnabled=false.

Ciò significa che EventSource.IsEnabled() restituiva true nel callback OnEventCommand(EventCommandEventArgs) per un utente EventSource, anche se il comando determinava la disabilitazione di EventSource. Il callback si verificava dopo la disattivazione della possibilità di inviare gli eventi, quindi anche se EventSource tentava di generare un evento, non veniva scritto.

Nuovo comportamento

Ora il comando EventSource è contrassegnato come disabilitato prima che venga generato il callback per EventCommand.Disable.

Versione introdotta

  • Manutenzione di .NET 6
  • Manutenzione di .NET 7

Tipo di modifica che causa un'interruzione

Questa è una modifica funzionale.

Motivo della modifica

Si tratta di una modifica necessaria per supportare più istanze EventCounter. La possibilità di gestire più istanze è stata richiesta da numerosi clienti.

Inoltre, EventCommand.Enable ha sempre generato una visualizzazione coerente: EventSource.IsEnabled() segnala accuratamente lo stato abilitato e EventSource può scrivere eventi dal callback OnEventCommand. Questa modifica rende il comportamento di EventCommand.Disable coerente con EventCommand.Enable.

È improbabile che esista uno scenario in cui si desidera il comportamento precedente, quindi non è possibile ripristinarlo.

API interessate