这是我第一次将 Windows 服务应用程序放在一起,并且我一直在阅读一些关于以某种时间间隔运行多个任务的不同方法。一个是每天一次,另一个是每 1 分钟。
我得出的结论是使用 TimedCallBack 和 System.threating.timer 计时器。
不优雅的例子
private void DailyTask(object state) {
//do something daily
}
private void IntervalTask(object state) {
//do something else
}
private void OnStart() {
TimedCallBack dailyTcb = DailyTask;
TimedCallBack intervalTcb = IntervalTask;
System.Threading.Timer dailyTimer = new Timer(dailyTcb, null, 0, 86400000);
System.Threading.Timer intervalTimer = new Timer(intervalTcb, null, 0, 60000);
}
private void OnStop() {
intervalTimer.Dispose();
dailyTimer.Dispose();
}
问题
1)定时器是否在任务完成后开始计时?如果每次运行都需要一些时间才能完成,这会慢慢导致它超过一天?我会假设我需要确定运行负 24 小时需要多长时间?
2)对于两个简单的任务来说,这是一个完美的方法吗?
谢谢