C# 间隔时间执行任务

启用定时只需调用下面SetNextTask即可,SpanSetting是间隔秒钟,需要间隔分钟或小时该一下逻辑即可。

       private static void SetNextTask(int SpanSetting)
        {

            DateTime next = new DateTime();//下一次触发时间
            DateTime Now = DateTime.Now;//当前时间
            int ss = int.Parse(DateTime.Now.ToString("ss"));//当前分钟/秒钟
            if (ss<SpanSetting)
            {
                int int1 = (ss / SpanSetting)*SpanSetting + SpanSetting;
                next = DateTime.Today.AddHours(Now.Hour);
                next = next.AddMinutes(Now.Minute);
                next = next.AddSeconds(int1);
            }
            else
            {
                next = DateTime.Today.AddHours(Now.Hour);
                next = next.AddMinutes(Now.Minute+1);
            }

            if (DateTime.Now > next)
            {
                next = next.AddDays(1.0);
            }
            int msUntilFour = (int)((next - DateTime.Now).TotalMilliseconds);

            Timer t = new System.Threading.Timer(Fonction);
            t.Change(msUntilFour, Timeout.Infinite);
        }

 

posted @ 2021-08-03 14:57  来碗素椒杂酱面  阅读(597)  评论(0)    收藏  举报