我有一个关于System.Timers.Timer
在我的 .NET 应用程序中使用的问题。
我有三个不同的事件,一个每秒触发一次,另一个每分钟触发一次,最后一个每半小时触发一次。
从性能角度来看,拥有一个计时器还是三个计时器更好?
使用一个计时器的方法是检查ElapsedEventArgs
' SignalTime 并将其与先前测量的时间进行比较。当然,如果您更改了 DateTime,这并不完全有效,但这不是这里的问题。基本上每一秒我都会检查一分钟或半小时是否已经过去......
我担心的是使用 3 个计时器会产生过多的开销。我错了,为了简单明了,我应该使用 3 还是 1 计时器就足够了?
代码:
private void TimerEverySecondElapsed(object sender, ElapsedEventArgs e)
{
timerEverySecond.Enabled = false;
OnTimerElapsed(TimerType.EverySecond);
// Raise an event every minute
if ((e.SignalTime - previousMinute) >= minuteSpan)
{
OnTimerElapsed(TimerType.EveryMinute);
previousMinute = e.SignalTime;
}
// Raise an event every half hour
if ((e.SignalTime - previousHalfhour) >= semiHourSpan)
{
OnTimerElapsed(TimerType.EverySemiHour);
previousHalfhour = e.SignalTime;
}
timerEverySecond.Enabled = true;
}
minuteSpan
并且semiHourSpan
是只读的时间跨度。