如何设置 Windows 服务应用程序 C# 的自动重新启动

本文关键字:应用程序 重新启动 服务 Windows 何设置 设置 | 更新日期: 2023-09-27 17:55:29

我需要创建一些Windows服务,该服务将每隔一段时间,每小时执行一次。问题是 - 我应该使用哪个计时器控件:System.Timers.Timer 还是System.Threading.Timer one?我问是因为我一直在阅读论坛,并且我对两者都有一些褒贬不一的评论。此外,这些解释很难理解,因为我对编程很陌生。谢谢。

如何设置 Windows 服务应用程序 C# 的自动重新启动

阅读 @Jon Skeet's Timers 文章: http://www.yoda.arachsys.com/csharp/threads/timers.shtml

我在Windows服务中使用System.Timers.Timer。它易于控制和连接。VS 2010 的智能感知甚至在您键入"myTimer.Elapsed += ..."

如果您不希望计时器在长时间运行的处理中完成事件处理程序之前触发,还可以在事件处理程序的开头停止计时器,并在结束时重新启动计时器。例如:

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();
}