在 .Net 中,我们可以通过编写来创建 AppDomain
AppDomain domain = AppDomain.CreateDomain("MyDomain");
我的问题是,它是如何在内部创建的?我们在其中使用此代码的应用程序运行在与我们创建的新应用程序域不同的 appDomain 中,因此一个 AppDomain 如何创建另一个 AppDomain 以及 clr 如何决定在哪个 appDomain 中创建哪些应用程序域。
在 .Net 中,我们可以通过编写来创建 AppDomain
AppDomain domain = AppDomain.CreateDomain("MyDomain");
我的问题是,它是如何在内部创建的?我们在其中使用此代码的应用程序运行在与我们创建的新应用程序域不同的 appDomain 中,因此一个 AppDomain 如何创建另一个 AppDomain 以及 clr 如何决定在哪个 appDomain 中创建哪些应用程序域。
目前尚不清楚您要解决的问题。
AppDomain 由 .Net 运行时在初始化托管应用程序时创建。
当您启动 ABC.EXE 时,它会获得一个应用程序域。如果您启动 ABC.EXE 的第二个实例,它将获得一个新的、单独的应用程序域。
现在,如果您的 ABC.EXE 执行,AppDomain domain = AppDomain.CreateDomain("MyDomain");
那么您将拥有 4 个应用程序域,它们不能(轻松)相互通信。
AppDomain 通常由主机创建。主机的示例包括 Windows Shell、ASP.NET 和 IE。从命令行运行 .NET 应用程序时,宿主是 Shell。Shell 为每个应用程序创建一个新的 AppDomain。AppDomains 也可以由 .NET 应用程序显式创建