我有一个执行一些维护任务的 C# 应用程序。它需要大约每小时运行一次,尽管如果它有点偏离也不是很重要。它必须在没有人登录的 Win2003 服务器上运行。
基本上我想知道我是否应该编写一个 Windows 服务,如果是,如果 Thread.Sleep() 是暂停线程一小时的正确方法,或者是否有更好的方法来确保线程保持空闲并且不放任何服务器负载?(又名。与自旋锁最相反的是什么)
另一种选择是 Windows 任务计划程序,但我不确定这是否适合服务器使用,因为 a) 我必须将计划存储在其中而不是在我的 app.config 中,b) 我无法通过以下方式轻松控制服务启动/停止/重新启动和 c) 我不知道 Windows 用户的凭据是否与我在服务 MMC 管理单元中输入它时一样安全。
你有什么意见?拥有空闲服务是否可能并且很好,或者您会推荐任务调度程序吗?