private void EventService_OnUpdateEvent(EventModel oldValue, EventModel newValue) { //旧值是否是时间事件 bool oldIsTimeEvent = oldValue.EventType == Event.Types.EventType.OnIntervalTimer || oldValue.EventType == Event.Types.EventType.OnTimeChanged; //新值是否是时间事件 bool newIsTimeEvent = newValue.EventType == Event.Types.EventType.OnIntervalTimer || newValue.EventType == Event.Types.EventType.OnTimeChanged; if (oldIsTimeEvent && !newIsTimeEvent) { //旧值是,新值不是时卸载timer _timerService.Close(oldValue.ID); } else if (oldIsTimeEvent && newIsTimeEvent) { //旧值新值都是timer事件时判断是否更改条件或事件类型 if ((oldValue.EventType != newValue.EventType) || (oldValue.Condition != newValue.Condition)) { //条件或类型被修改 //关闭旧的timer _timerService.Close(oldValue.ID); //启动新的 Handle(newValue); } } else if (!oldIsTimeEvent && newIsTimeEvent) { //旧值不是新值是 Handle(newValue); } }