在.net中的特定时间做某事

时间:2013-04-03 15:08:54

标签: c# .net datetime time

我有一个每五分钟运行一次然后睡觉的过程。我想知道当时间是在晚上11点45分到午夜之间时,是否有一种优雅的方式可以做某事(任何事情)。

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

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

如果该值的计算结果为true,则执行某些操作。如果没有,请保持睡眠和醒来 只是伪代码BTW。我不认为这会投入生产。但那是我的想法。是否有更多* 强文 *优雅的解决方案

3 个答案:

答案 0 :(得分:6)

不知道它是否符合“优雅”的标准,但Quartz.NET肯定是“企业”。

答案 1 :(得分:2)

将时间管理机制留给最适合的地方 - 我建议使用Windows Task Scheduler

让它在晚上11:45触发你的应用程序然后你的应用程序可以集中精力完成它的任务,而不用担心时间以及应用程序的另一个实例是否已经启动并运行任务等等。

答案 2 :(得分:2)

您可以使用Timer类,如下所示:

new System.Threading.Timer(myScheduledTask, null, new TimeSpan(hh, mm, ss) - DateTime.Now.TimeOfDay, -1);