看看我的代码:
Timer myTimer = new Timer { Interval = 1000 };
public void button_Click(object sender, EventArgs e)
{
myTimer.Tick += new EventHandler(OnTick);
myTimer.Start();
}
public void OnTick(object sender, EventArgs ea)
{
myTimer.Stop();
Execute();
}
我希望函数Execute();
每天在指定的时间运行,例如:1h:5min, 1h:25min, 2h10min...
。我使用Timer
,但我只能使函数每Interval
次运行一次。如何指定定时器的绝对时间?
答案 0 :(得分:1)
您可以计算当前时间与应用程序启动时Timer
应运行的时间之间经过的毫秒数。设置计时器Interval
的毫秒数。
示例:
TimeSpan ts = <datetime when timer should fire> - DateTime.Now;
myTimer.Tick += new EventHandler(OnTick);
myTimer.Interval = ts.TotalMilliseconds;
myTimer.Start();
当计时器触发时,使用上面的行再次设置间隔,以确保它在指定时间的第二天再次触发。
这当然假设您的应用程序确实在您想要定时触发时运行。
答案 1 :(得分:0)
您可以使用Quartz.net调度程序创建日程表: http://quartznet.sourceforge.net/
答案 2 :(得分:0)