Отказ от событий C#C#

Место общения программистов C#
Ответить
Anonymous
 Отказ от событий C#

Сообщение Anonymous »


Я прослушиваю сообщение об аппаратном событии, но мне нужно отключить его, чтобы избежать слишком большого количества запросов.

Это аппаратное событие, которое отправляет статус машины, и мне приходится хранить его в базе данных для статистических целей, и иногда случается, что его статус меняется очень часто (мерцает?). В этом случае я хотел бы сохранить только «стабильный» статус и хочу реализовать его, просто подождав 1-2 секунды перед сохранением статуса в базе данных.

Это мой код:

частный MachineClass Connect() { пытаться { MachineClass RPC = новый MachineClass(); rpc.RxVARxH += eventRxVARxH; возврат РПК; } улов (исключение e1) { log.Error(e1.Message); вернуть ноль; } } частное недействительное событиеRxVARxH (машина MachineClass) { log.Debug("Событие запущено"); } Я называю это поведение «устранением дребезга»: подождите несколько раз, чтобы действительно выполнить свою работу: если то же самое событие будет запущено снова во время устранения дребезга, мне придется отклонить первый запрос и начать ждать времени устранения дребезга, чтобы завершить второе событие.

Как лучше всего этим управлять? Просто таймер на один выстрел?

Чтобы объяснить функцию «debounce», ознакомьтесь с этой реализацией javascript для ключевых событий: http://benalman.com/code/projects/jquer ... /debounce/
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»