How to set timer to execute at specific time in c#

后端 未结 4 2248
南旧
南旧 2020-12-09 18:22

I have a requirement where i need to execute timer at 00:01:00 A.M every day...But i am not getting how to achieve this ..If i am taking Systems time,it can be in different

4条回答
  •  感动是毒
    2020-12-09 19:00

    What you should do is write your program that does whatever you need it to do, and then use your OS's built-in task scheduler to fire it off. That'd be the most reliable. Windows's Task Scheduler, for instance, can start your app before the user logs in, handle restarting the app if necessary, log errors and send notifications, etc.

    Otherwise, you'll have to run your app 24/7, and have it poll for the time at regular intervals.

    For instance, you could change the interval every minute:

    timer.Interval = 1000 * 60;
    

    And inside your Elapsed event, check the current time:

    static void timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        if (DateTime.Now.Hour == 1 && DateTime.Now.Minute == 0)
        {
            // do whatever
        }
    }
    

    But this is really unreliable. Your app may crash. And dealing with DateTime's can be tricky.

提交回复
热议问题