我开发了一个Windows服务,它时不时地运行一个任务。但是,任务执行间隔是每小时。但是,我注意到该任务大约每 1 小时 5 秒执行一次,这是一个问题。
我知道Windows不是实时操作系统,但是你不觉得误差太大了吗,在设定的时间间隔上加上5秒?
我尝试使用
TimeSpan.FromMinutes(60)
和 TimeSpan.FromSeconds(3600)
,得到了相同的结果。
我需要使用
System.Threading.Timer
,因为只有此类才有可能对首次执行应用延迟。
我基本上用:
_timer = new Timer(DestFunction, null, TimeSpan.FromSeconds(delaysec), TimeSpan.FromSeconds(3600));
我能做什么,让执行保持在每小时同一秒?
尝试保存带有时间戳的日志文件。 也许这 5 秒是延迟秒或服务启动时间。