Tag: 去抖动

C#事件去抖动

我正在收听硬件事件消息,但我需要去除它以避免太多查询。 这是一个发送机器状态的硬件事件,我必须将其存储在数据库中以用于统计目的,并且有时会发生其状态经常变化(闪烁?)。 在这种情况下,我想只存储一个“稳定”状态,我想在将状态存储到数据库之前等待1-2秒来实现它。 这是我的代码: private MachineClass connect() { try { MachineClass rpc = new MachineClass(); rpc.RxVARxH += eventRxVARxH; return rpc; } catch (Exception e1) { log.Error(e1.Message); return null; } } private void eventRxVARxH(MachineClass Machine) { log.Debug(“Event fired”); } 我将这种行为称为“去抖”:等待几次才能真正完成它的工作:如果在去抖时间内再次触发相同的事件,我必须解除第一个请求并开始等待去抖时间以完成第二个事件。 管理它的最佳选择是什么? 只是一次性计时器? 要解释“去抖”function,请参阅以下关键事件的javascript实现: http : //benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/