[英]how to set the timer interval for one day in a windows service
我创建了一个Windows服务,其中我设置了每分钟的计时器间隔,因此每分钟都会触发一次。 但是我需要每天触发一次。
您可以在下面的代码中找到我在OnStart()
方法中设置计时器间隔的位置。
码:
protected override void OnStart(string[] args)
{
TraceService("start service");
//handle Elapsed event
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
//This statement is used to set interval to 1 minute (= 60,000 milliseconds)
timer.Interval = 86400000;
//enabling the timer
timer.Enabled = true;
}
这篇文章很老了,但我认为值得一提的是,与其使用像86400000这样的魔术数字,不如使用诸如new TimeSpan(1,0,0,0).TotalMilliseconds之类的东西,这样一来,如果有人需要更改它,知道应该更改什么。
因此,关于您的帖子的几件事:
首先,它没有说明问题所在!
从技术上讲,计时器支持大约25天的计时器间隔。 因此,您的代码应该可以工作。
如果您希望超过25天并且不担心线程安全,建议您转到System.Threading.Timer。
更多信息在这里
因为,您的服务作为基于Windows的服务运行,所以我建议您转到System.Threading.Timer。
现在,在C#中,您可以使用TimeSpan类获取一天中的总毫秒数,以设置每天的计时器。
var totalMilliSecondsPerDay = TimeSpan.FromDays(1).TotalMilliseconds;
var timer = new Timer(totalMilliSecondsPerDay);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.