void ClearChannelDelta(int channel) { if (_log.IsDebugEnabled) { _log.DebugFormat("Starting {0}", MethodBase.GetCurrentMethod().ToString()); } if (ChangingChannels.ContainsKey(channel)) { lock (lockObject1) { ChangingChannels.Remove(channel); if (ChangingChannels.Count == 0) { TimerIsTicking = false; ProcessTimer.Stop(); } } } if (_log.IsDebugEnabled) { _log.DebugFormat("Ending {0}", MethodBase.GetCurrentMethod().ToString()); } }
void ProcessTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (_log.IsDebugEnabled) { _log.DebugFormat("Starting {0}", MethodBase.GetCurrentMethod().ToString()); } List <int> keys = new List <int>(ChangingChannels.Keys); foreach (int channel in keys) { decimal newValue = ChangingChannels[channel].Value + ChangingChannels[channel].Delta; if (newValue > byte.MaxValue) { newValue = byte.MaxValue; } ChangingChannels[channel].Value = newValue; ChangingChannels[channel].MillisecondsRemaining -= Convert.ToInt32(ProcessTimer.Interval); ApplyNewChannelValue(channel, Convert.ToByte(newValue)); if (ChangingChannels[channel].MillisecondsRemaining <= 0) { ChangingChannels.Remove(channel); if (ChangingChannels.Count == 0) { ProcessTimer.Stop(); } } } if (_log.IsDebugEnabled) { _log.DebugFormat("Ending {0}", MethodBase.GetCurrentMethod().ToString()); } }