Comportamento de callback do EventSource

Para um EventCommand.Disable, o EventSource agora está marcado como desabilitado antes do retorno de chamada ser emitido.

Comportamento anterior

Anteriormente, o EventSource.OnEventCommand(EventCommandEventArgs) retorno de chamada era emitido para um EventCommand.Disable antes de definir m_eventSourceEnabled=false.

Isso significava que EventSource.IsEnabled() retornava true no OnEventCommand(EventCommandEventArgs) retorno de chamada para um usuário EventSource, mesmo se o comando levou à EventSource desabilitação. O retorno de chamada aconteceu depois que a capacidade de expedir eventos foi desativada, então mesmo que um EventSource tentasse disparar um evento, ele não foi escrito.

Novo comportamento

Agora, o EventSource é marcado como desabilitado antes do retorno de chamada ser emitido para um EventCommand.Disable.

Versão introduzida

  • Manutenção do .NET 6
  • Manutenção do .NET 7

Tipo de mudança disruptiva

Esta é uma alteração comportamental.

Motivo da alteração

Essa alteração foi necessária para dar suporte a várias EventCounter instâncias. A capacidade de ter várias instâncias foi solicitada por vários clientes.

Além disso, EventCommand.Enable sempre apresentou uma visão consistente: EventSource.IsEnabled() informa com precisão o status habilitado, e EventSource pode registrar eventos do OnEventCommand callback. Essa alteração torna o EventCommand.Disable comportamento consistente com EventCommand.Enable.

É improvável que haja um cenário em que o comportamento anterior seja desejado e não haja como reverter o comportamento.

APIs afetadas