我能够构建一个Windows服务并安装它。
我很好奇如何每小时运行这个服务?我希望它能定期每小时运行。
我还需要知道它运行的时间范围,以便我可以将其存储在某个地方。
我该怎么做呢?
编辑:这个服务将被安装在许多机器上,因此,我不想在100台服务器上创建一个计划任务。
我能够构建一个Windows服务并安装它。
我很好奇如何每小时运行这个服务?我希望它能定期每小时运行。
我还需要知道它运行的时间范围,以便我可以将其存储在某个地方。
我该怎么做呢?
编辑:这个服务将被安装在许多机器上,因此,我不想在100台服务器上创建一个计划任务。
有几个选项可以考虑。
Thread.Sleep(1000*60*60);
Thread.Sleep(TimeSpan.FromHours(1));
通过这种方式使代码更易读
Thread.Sleep()
方法会确保您的服务在一个小时的时间间隔内运行,而不是每个小时运行一次,即每个任务将在 1 小时 + 任务运行时间后启动。考虑在服务中使用计时器。这将是一个更加健壮的解决方案,因为您可以控制何时运行任务,监视其进度等等。请记住,每个 Timer
事件都会在不同的线程中触发,如果任务运行时间超过一个小时,您可能需要等待第一个任务完成以避免并发任务。
任务调度器可能是个好主意,但服务是专门为此设计的。服务易于安装并正确记录日志。你所需要做的就是,在服务启动时,可以安装一个系统计时器(System.Threading.Timer),或者还有另外一种计时器。