【发布时间】:2017-06-08 19:00:21
【问题描述】:
我在控制台服务应用程序中使用 System.Threading.Timer,并尝试每天为同一时间制作计时器。
如果我在此之前启动应用程序,最初我会很好。就像我的时间是 10:05 并且我在 10:00 启动应用程序一样,我们很好。但如果我从 10:06 开始,我不知道如何告诉时间跨度提前 24 小时。
感谢您的帮助!
public void SetUpTimer(TimeSpan alertTime)
{
DateTime current = DateTime.Now;
TimeSpan timeToGo = alertTime - current.TimeOfDay;
if (timeToGo < TimeSpan.Zero)
{
EventLog.WriteEntry("MyApp", "Timer Passed " );
return;//time already passed
}
timer = new System.Threading.Timer(x =>
{
EventLog.WriteEntry("MhyApp", "Timer Set " + timeToGo);
this.MethodRunsAt();
}, null, timeToGo, System.Threading.Timeout.InfiniteTimeSpan);
}
【问题讨论】:
标签: c# multithreading timer