繁体   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