我需要每天凌晨 3 点启动一次在服务器上运行的 C# 服务。我认为我可以使用
thread.sleep()
或通过在 24/7 运行的代码中将 DateTime.Now
与凌晨 3 点进行比较来做到这一点。
您有更好的解决方案吗?
编写控制台应用程序或同等应用程序,并使用 Windows 任务计划程序每天运行它。
我已成功使用计划任务进行备份,但我有一句警告......
如果您注销,计划的任务可能无法执行。我不确定这是否可以被覆盖,但我被未执行的任务所困扰,因为 Windows 会自动更新、重新启动并等待我登录。
我禁用了自动更新 - Windows 应首先询问。
另一个考虑因素是,凌晨 3 点通常是许多用户注销的时间。
将 DateTime.Now 与凌晨 3 点进行比较
这是一个糟糕的解决方案,即使你在每次检查之间休眠一段时间,因为它不必要地浪费系统资源(不仅在重复检查时间,而且在程序的内存使用方面)。
System.Threading.Timer
可能适合你。
为什么不将其设置为计划任务运行?让它执行然后退出。将 Windows 设置为每天凌晨 3:00 作为计划任务启动该进程。