定点执行服务

怎么设置要它在每天23:00执行,包括第一次??

方法一:timer.Interval = 1000; 每秒都执行timer_Elapsed ,然后根据时,分,秒,进行判断,但每天只要执行一次,就会有点浪费资源,每时每刻都在执行程序,下面的解决方案是,执行之后把时间设置成23小时候在运行timer_Elapsed

 

方法二:

 

static void Main(string[] args)
{
    //在应用程序启动时运行的代码
    System.Timers.Timer timer = new System.Timers.Timer();
    timer.Interval = 1000;
    timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
    timer.AutoReset = true;
    timer.Start();
}
 
static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    if (DateTime.Now.ToString("HH:mm:ss") == "23:00:00")
    {
        (sender as System.Timers.Timer).Interval = 23 * 60 * 60 * 1000.0;        //将时间间隔改为23小时,23小时后重新发生timer_Elapsed事件。
         //要做的事情
        console.writeLine(DateTime.now);
    }
    else
        (sender as System.Timers.Timer).Interval = 1000;
}
posted on 2016-01-08 16:15  liumumu  阅读(81)  评论(0)    收藏  举报