從 .NET Core 2.1 開(kāi)始,我們現(xiàn)在可以使用托管服務(wù)運(yùn)行后臺(tái)任務(wù)。我相信我們可以通過(guò)向具有 Singleton 范圍的服務(wù)容器添加一個(gè)服務(wù)類(lèi)來(lái)實(shí)現(xiàn)同樣的目標(biāo)。與單例范圍的服務(wù)相比,托管服務(wù)有什么好處?主要區(qū)別是什么?我們可以將單例范圍的服務(wù)注入控制器,并在每個(gè)新請(qǐng)求中對(duì)其進(jìn)行操作。但是,這對(duì)于托管服務(wù)是不可能的。
1 回答

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