從 .NET Core 2.1 開始,我們現在可以使用托管服務運行后臺任務。我相信我們可以通過向具有 Singleton 范圍的服務容器添加一個服務類來實現同樣的目標。與單例范圍的服務相比,托管服務有什么好處?主要區別是什么?我們可以將單例范圍的服務注入控制器,并在每個新請求中對其進行操作。但是,這對于托管服務是不可能的。
1 回答

慕仙森
TA貢獻1827條經驗 獲得超8個贊
托管服務實際上是一個單例服務。不同之處在于托管服務有特定的生命周期:當(web)主機啟動時,托管服務啟動,當(web)主機關閉時,托管服務也明確終止。這允許您包括啟動或關閉行為,例如建立或終止與外部服務的連接。
相比之下,注冊為單例的普通服務僅在首次解析時實例化,并在應用程序關閉期間處置服務提供者時處置。
因此,托管服務讓您可以更好地控制在應用程序啟動或停止時如何處理服務。但這并沒有太多的魔力。
- 1 回答
- 0 關注
- 82 瀏覽
添加回答
舉報
0/150
提交
取消