我有一个Windows服务,我想插入一个计时器。如何检查当前时间是否为9:00 AM
?
我希望我的服务每天检查一下。非常感谢你
我的尝试:
Datetime dt=Datetime.parse("09:00:00 everyday");
if(datetime.now -dt ==0)
{
//fire event
}
但是,这对我有点狡猾。
答案 0 :(得分:0)
您需要制作一个计时器并将其间隔设置为从现在到明天9:00 AM之间的时间间隔。下次计时器滴答时,再次以相同方式设置间隔。 你应该使用这个Timer类: http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx
答案 1 :(得分:0)
请使用DateTime.UtcNow.Hour查看当前时间
通过使用UtcNow,您将获得一个DateTime对象,该对象设置为计算机上的当前日期和时间,表示为协调世界时(UTC)。
答案 2 :(得分:0)
var now = DateTime.Now;
var today = now.Date;
var nineAm = today.AddHours(9);
TimeSpan ts = nineAm - now;
var timeInMillisecondsTill9Am = ts.Milliseconds;
If(timeInMillisecondsTill9Am==0)
{
//your code goes here
}
答案 3 :(得分:0)
由于您不知道有人可能会关闭或重启您的计算机或服务,因此您需要确保使用足够强大的方法来处理这些类型的中断。
如果 >> >> >> 。如果是这样,您将上次运行日期更新为日期(可能在简单的文本文件中),然后运行“上午9:00”任务。通过这种方式,您的任务每天只运行一次,相当接近上午9点,并且在重新启动时非常强大。
你需要使用一个标准的.NET计时器来触发检查 - 如果你足够聪明,你可以在上午9点之后点火。
如果这是一个很好的解决方案,请告诉我。