C#中的Windows服务和计时器

时间:2014-07-23 09:22:32

标签: c#

我需要帮助来编写一个带有计时器的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);
        }
}

1 个答案:

答案 0 :(得分:1)

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