【问题标题】:How do .NET AppDomains keep the hosted process alive?.NET AppDomains 如何使托管进程保持活动状态?
【发布时间】:2014-07-15 13:08:27
【问题描述】:

假设我在 .NET/CLR 进程中有两个 AppDomain。

其中一个 AppDomain 因未处理的异常而崩溃。

其他 AppDomain 是否仍能正常运行?如果默认 AppDomain 崩溃了怎么办?

我只是想知道是什么让进程保持活力。由于 AppDomain 是完全独立的实体,我假设默认 AppDomain 可能会崩溃,而其他 AppDomain 可能会继续?

甚至我的 C# 书籍都没有明确提到会发生什么......

【问题讨论】:

  • 这实际上是 AppDomains 的主要目的之一

标签: c# .net exception appdomain unhandled


【解决方案1】:

我假设如果您从主线程创建的任何域崩溃,您会没事的。然而,如果你的“入口域”崩溃了,其他的也会死掉。

【讨论】:

  • 快点,谢谢!考虑到默认应用程序域会在运行时创建其他应用程序域,这是有道理的。
【解决方案2】:

正如您所提到的,AppDomain 是独立完成的。每个域都有自己的资源,所以当它崩溃时,其他的都是独立的。见this。如果您的默认域崩溃了,我认为从它创建的所有域也会失败。

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多