簡體   English   中英

c#:具有多個應用程序域的單個進程VS多個進程

[英]c# : single process with multiple app domain VS multiple process

我目前有多個流程。 他們都在做不同的任務。 其中一些還托管WCF服務並與數據庫進行交互。 它們大多數是多線程過程,需要承擔一些重任。 它們都需要一直保持運行狀態(它們共同充當服務器)。 某些進程還會通過CLI與非托管代碼進行交互。

最近,我遇到了“具有多個應用程序域的單一過程”的概念。 我想知道我的情況有什么好處嗎? 與多流程體系結構相比,此方法的局限性和優勢是什么?

編輯:如果任何進程崩潰,則必須再次重新啟動。 目前,有一個過程監視程序。

tldr :您具有本地依賴性。 如果需要魯棒性,請繼續使用單獨的過程。

在我看來,這主要取決於您運行的是純.Net代碼還是具有本機依賴項:進程隔離將在發生本機崩潰的情況下防止全局故障(這可能會使整個過程崩潰)。

對於非托管資源,同樣的事情:如果某個地方存在非托管資源泄漏,則重新啟動進程可以“修復”該泄漏。 但是,重新啟動appdomain不會。

如果您僅使用托管代碼(這似乎不是您的情況),則具有多個應用程序域的單個進程就可以了,並且它具有消除進程創建開銷的優點(創建新的AppDomain比創建進程更輕松) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM