我需要创建一些Windows服务,每隔一小时就会执行一次。问题是 - 我应该使用哪个计时器控件:System.Timers.Timer或System.Threading.Timer one?我问,因为我一直在阅读论坛,我得到了两个混合评论。此外,由于我对编程很陌生,所以解释很难理解。谢谢。
答案 0 :(得分:1)
阅读@Jon Skeet的计时器撰写:http://www.yoda.arachsys.com/csharp/threads/timers.shtml
答案 1 :(得分:0)
我在Windows服务中使用System.Timers.Timer。它易于控制和连接。当你输入“myTimer.Elapsed + = ...”时,VS 2010的Intellisense甚至会创建经过的事件处理程序
如果您不希望在长时间运行的处理中事件处理程序完成之前触发计时器,您也可以在事件处理程序的开头停止计时器并在结束时重新启动计时器。例如:
System.Timers.Timer myTimer;
void Main()
{
myTimer = new System.Timers.Timer(1000);
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
myTimer.Start();
}
void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
myTimer.Stop();
// process event
myTimer.Start();
}