我需要帮助来编写一个带有计时器的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);
}
}
答案 0 :(得分:1)
为什么不编写3个不同的应用程序并让Windows任务调度程序在适当的时间执行它们?这可能比尝试使用自己的调度逻辑要容易得多,这通常比您预期的要复杂得多。