首页 > 解决方案 > 每 12 小时启动一个程序

问题描述

我想每 12 小时在程序中启动一个方法。

我需要做什么 ?

我必须使用计时器来执行此操作吗?

我有这个代码:

aTimer = new System.Timers.Timer(1000); //One second, (use less to add precision, use more to consume less processor time
int lastHour = DateTime.Now.Hour;
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Start();
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
    if(lastHour < DateTime.Now.Hour || (lastHour == 23 && DateTime.Now.Hour == 0))
     {
           lastHour = DateTime.Now.Hour;
           YourImportantMethod(); // Call The method with your important staff..
     }

}

我可以调整它以每 12 小时启动一次我的程序吗?

标签: c#

解决方案


使用 async/await 的简单解决方案:

    private static async void RepeatedAction()
    {
        TimeSpan delay = TimeSpan.FromHours(12);

        while (true)
        {
            await Task.Delay(delay);
            YourImportantMethod();
        }
    }

推荐阅读