我尝试在x分钟后运行后台计划任务(在控制台应用程序中),我可以使用Task.Delay
轻松地实现它。但是,使用任务计划程序有什么好处?
编辑:顺便说一句,我没有任何特殊要求,只是想了解为什么一个比另一个更好。任务计划程序需要大量代码,所以为什么值得执行计划程序任务?
答案 0 :(得分:1)
Task.Delay
按照锡罐上的内容行事,就是这样。
IScheduledTask
/ IHostedService
实现提供了几个功能。
IHostedService
提供了正常关机的机制。在ASP.NET应用程序中,该应用程序可以回收,您无法保证调用Task.Delay(1000*60)
的代码将得以执行。使用IScheduledTask
解决方案,您可以实现StopAsync()
方法来优雅地取消Task。您还可以配置主机配置关闭超时。 您的问题是关于控制台应用程序的,从here开始,在.Net Core 2.1中,WebHost将被通用主机替代,因此不再专门与ASP.NET相关。
Tangent :我有一个相关的问题ASP.Net Core 2.0 Shutdown Timeout, what issues can I expect using a very long time out of 2 min? <-我在2分钟内的生产中没有任何问题。