[英]Convert time into Timer Interval using C#
我正在比较计时,并根据该计时器的分配间隔。
我有两个约会时间
对于即
Datetime dt1 = 04:00:00;
Datetime dt2 = 15:20:28;
Datetime dt3 = 24:00:00;
现在,我想设置在04:00:00调用计时器的间隔。 想想,现在时间是15:20:28,所以要在04:00:00调用计时器,我需要做一些操作。
所以,我应该怎么做才能在04:00:00呼叫Timer
? 简而言之,我想检查一下时间,如果不是04:00 AM,请设置适当的时间间隔以在04:00 AM呼叫计时器。
并将时间转换为计时器间隔
您无法致电计时器。 间隔时间结束后,计时器将唤醒。 您可以做的是计算从现在到凌晨4点的TimeSpan,并将Timer interval设置为此值。 或更有效的体系结构方法是将计时器间隔设置为每n秒,并在计时器唤醒时检查计时器间隔是否为4。
这是第一个选项的示例代码:
TimeSpan ts = new TimeSpan(new DateTime(2013,06,15,04,00,00).Ticks- DateTime.Now.Ticks);
long ticks = ts.Ticks;
long divide= (long)Math.Pow(10, 7);
long span = ticks / divide;
timer.Interval = (int)span*1000;
timer.Tick += timer_Tick;
timer.Start();
var dt = ... // next 4:00 AM from now
var timer = new Timer(callback, null, dt - DateTime.Now, TimeSpan.FromHours(24));
检查这是否适合您
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.