c#中的Windows服务和定时器

本文关键字:定时器 服务 Windows 中的 | 更新日期: 2023-09-27 18:14:25

我需要帮助编写一个带有计时器的windows服务,可以在每天3个不同的时间调用3个不同的函数(事件)。请提供一些代码示例。谢谢你。

 private System.Timers.Timer timer;
    protected override void OnStart(string[] args)
    {
        this.timer1 = new System.Timers.Timer(60000); 
        this.timer1.AutoReset = true;
        this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
        this.timer1.Start();
    }
private DateTime _lastRun1 = DateTime.Now.AddDays(-1);
private DateTime _lastRun2 = DateTime.Now.AddDays(-1);
private DateTime _lastRun3 = DateTime.Now.AddDays(-1);
    private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        if (_lastRun.Date < DateTime.Now.Date && DateTime.Now.Hour == 13)
        {
            //call functionX
         DateTime _lastRun1 = DateTime.Now.AddDays(1);
        }
        if (_lastRun.Date < DateTime.Now.Date && DateTime.Now.Hour == 14)
        {
           //call functionY
         DateTime _lastRun2 = DateTime.Now.AddDays(1);
        }
  if (_lastRun.Date < DateTime.Now.Date && DateTime.Now.Hour == 16)
        {
           //call functionXY
         DateTime _lastRun3 = DateTime.Now.AddDays(1);
        }
}

c#中的Windows服务和定时器

为什么不直接编写3个不同的应用程序,让Windows任务调度程序在适当的时间执行它们呢?这可能比尝试正确设置自己的调度逻辑要容易得多,后者通常比您预期的要复杂得多。