如何在windows服务中设置一天的计时器间隔
本文关键字:一天 计时器 设置 windows 服务 | 更新日期: 2023-09-27 18:29:30
我创建了一个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这样的神奇数字,不如使用新的TimeSpan(1,0,0).TotalMilliseconds,这样,如果有人需要更改它,他们就会知道应该更改什么。
所以,关于你的帖子有几件事:
首先,它没有说明问题出在哪里!
从技术上讲,Timer支持大约25天的定时器间隔。因此,您的代码应该可以工作。
如果你想超过25天,并且不关心线程安全,我建议你去System.Threading.Timer.
更多信息点击这里
由于您的服务是作为基于windows的服务运行的,我建议您转到System.Threading.Timer.
在C#中,现在可以使用TimeSpan类来获取一天中的总毫秒数,以设置每天的计时器。
var totalMilliSecondsPerDay = TimeSpan.FromDays(1).TotalMilliseconds;
var timer = new Timer(totalMilliSecondsPerDay);