从 .NET Core 2.1 开始,我们现在可以使用托管服务运行后台任务。我相信我们可以通过向具有 Singleton 范围的服务容器添加一个服务类来实现同样的目标。与单例范围的服务相比,托管服务有什么好处?主要区别是什么?我们可以将单例范围的服务注入控制器,并在每个新请求中对其进行操作。但是,这对于托管服务是不可能的。
1 回答

慕仙森
TA贡献1827条经验 获得超8个赞
托管服务实际上是一个单例服务。不同之处在于托管服务有特定的生命周期:当(web)主机启动时,托管服务启动,当(web)主机关闭时,托管服务也明确终止。这允许您包括启动或关闭行为,例如建立或终止与外部服务的连接。
相比之下,注册为单例的普通服务仅在首次解析时实例化,并在应用程序关闭期间处置服务提供者时处置。
因此,托管服务让您可以更好地控制在应用程序启动或停止时如何处理服务。但这并没有太多的魔力。
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消