1

我有一个每五分钟运行一次然后休眠的进程。我想知道在一天的晚上 11:45 到午夜之间是否有一种优雅的方式来做某事(任何事情)。

我的第一直觉是做类似的事情......

    public bool isItMidNight() {
        return ((DateTime.UtcNow.Hour > 11:54) && DateTime.UtcNow.Hour < 11.59);             
    }

如果该值的计算结果为 true,则执行某些操作。如果没有,请继续睡觉和醒来,顺便说一句,只是伪代码。我认为这不会投入生产。但那是我的想法。有没有更*强文本*优雅的解决方案

4

3 回答 3

6

不知道它是否称得上“优雅”,但Quartz.NET肯定是“企业”。

于 2013-04-03T15:10:39.857 回答
2

你可以使用Timer类,像这样的:

new System.Threading.Timer(myScheduledTask, null, new TimeSpan(hh, mm, ss) - DateTime.Now.TimeOfDay, -1);
于 2013-04-03T15:39:02.083 回答
2

将时间管理机制留给最适合它的地方——我建议使用Windows 任务计划程序

让它在晚上 11:45 触发您的应用程序,然后您的应用程序可以专注于其任务,而无需担心时间以及该应用程序的另一个实例是否已经启动并运行该任务等等。

于 2013-04-03T15:12:18.117 回答