我正在尝试让一个计时器每天触发两次,而不是一个固定的时间间隔。
我想在早上7点和下午4点触发回调函数,然后第二天早上7点重复。
出于某种原因,这似乎并不难,但我认为我必须每天构建一个新的计时器,并在一天结束时终止它?
var timer = new Timer(TimeSpan.FromHours(1).TotalMilliseconds);
timer.Elapsed += TimerHandler;
void TimerHandler(object sender, EventArgs e) {
var hour = DateTime.Now.Hour;
if (hour != 7 && hour != 16) {
return;
}
...
}
你真的需要使用长时间运行的计时器来实现这个吗?如果你正在等待执行特定任务,编写一个控制台应用程序可能是更好的选择。然后,您可以设置一个计划任务,在需要时运行您的应用程序;请参见http://windows.microsoft.com/zh-cn/windows/schedule-task#1TC=windows-7。