Поделиться через


Поведение обратного вызова EventSource

Для объекта EventCommand.DisableEventSource теперь помечается как отключенный до выдачи обратного вызова.

Прежнее поведение

Ранее обратный EventSource.OnEventCommand(EventCommandEventArgs) вызов был выдан для предварительного EventCommand.Disable задания m_eventSourceEnabled=false.

Это означало, что EventSource.IsEnabled() он вернулся true в обратном OnEventCommand(EventCommandEventArgs) вызове для пользователя EventSource, даже если команда привела к EventSource отключению. Обратный вызов произошел после того, как возможность отправки событий была отключена, так что даже если EventSource пыталась вызвать событие, он не был написан.

Новое поведение

Теперь маркер EventSource помечается как отключенный до выдачи обратного EventCommand.Disableвызова.

Представленные версии

  • Обслуживание .NET 6
  • Обслуживание .NET 7

Тип критического изменения

Это изменение поведения.

Причина изменения

Это изменение необходимо для поддержки нескольких EventCounter экземпляров. Возможность иметь несколько экземпляров запрашивается несколькими клиентами.

Кроме того, EventCommand.Enable всегда выдал согласованное представление: EventSource.IsEnabled() точно сообщает о состоянии включено и EventSource может записывать события из обратного OnEventCommand вызова. Это изменение делает EventCommand.Disable поведение согласованным с EventCommand.Enable.

Вряд ли есть сценарий, в котором требуется предыдущее поведение, и нет способа отменить изменения поведения.

Затронутые API