运行 如何在不使用 sheduler 或 windowservice 的情况下每天在特定时间执行任务

How run a task everyday at a particular time without using sheduler or windowservice

我想要一个任务 (.exe) 到 运行 每天 8:55 上午,它将跨越 30 miniutue.so 我创建了一个控制台应用程序来启动该任务 (.exe ) 通过使用 process.start()。我不想要 sheduler 或 windowservice 而我对控制台很满意 application.But 控制台应用程序中使用的逻辑有时会失败,即不调用任务 (.exe) .我使用 while(true) 创建无限循环。我发布的代码(控制台代码),如何更正它

while (true)
            {
                if (DateTime.Now.Hour == 8 & DateTime.Now.Minute == 55 && DateTime.Now.Second == 0)
                {
                    Process.Start(".exe");//not real code
                }
                else
                    Thread.Sleep(1000);
            }

编辑 我只需要 运行 使用控制台应用程序完成一次任务,一天不超过

因为你的条件是漏秒。 Thread.Sleep(1000) 不能保证它会在每秒为 0 时准确暂停,因此您需要比这更聪明。

        while (true)
        {
            var now = DateTime.Now;
            var schedule = new DateTime(now.Year, now.Month, now.Day, 8, 55, 00);
            if (schedule < now) schedule = schedule.AddDays(1);

            Thread.Sleep(schedule.Subtract(now));

            Process.Start(".exe");
        }