Comportamiento de devolución de llamada de EventSource
Para EventCommand.Disable, EventSource ahora se marca como deshabilitado antes de que se emita la devolución de llamada.
Comportamiento anterior
Anteriormente, la devolución de llamada EventSource.OnEventCommand(EventCommandEventArgs) se emitía para EventCommand.Disable antes de establecer m_eventSourceEnabled=false
.
Esto significaba que EventSource.IsEnabled() devolvía true
en la devolución de llamada OnEventCommand(EventCommandEventArgs) de un usuario EventSource, incluso si el comando provocaba que EventSource
se deshabilitase. La devolución de llamada se producía después de desactivar la capacidad de enviar eventos, por lo que incluso si EventSource
intentaba desencadenar un evento, no se escribía.
Comportamiento nuevo
Ahora, EventSource se marca como deshabilitado antes de que se emita la devolución de llamada para EventCommand.Disable.
Versión introducida
- Mantenimiento de .NET 6
- Mantenimiento de .NET 7
Tipo de cambio importante
Este es un cambio de comportamiento.
Motivo del cambio
Este cambio era necesario para admitir varias instancias de EventCounter. Varios clientes han solicitado la capacidad de tener varias instancias.
Además, EventCommand.Enable siempre ha emitido una vista coherente: EventSource.IsEnabled() informa con precisión del estado habilitado y EventSource
puede escribir eventos de la devolución de llamada OnEventCommand
. Este cambio hace que el comportamiento de EventCommand.Disable
sea coherente con EventCommand.Enable
.
Acción recomendada
Es poco probable que haya un escenario en el que se prefiera el comportamiento anterior y no hay ninguna manera de revertir el comportamiento.