.net AppDomain是如何创建的?

.net AppDomain是如何创建的?,.net,winforms,winforms-interop,.net,Winforms,Winforms Interop,在.Net中,我们可以通过编写 AppDomain domain = AppDomain.CreateDomain("MyDomain"); 我的问题是,它是如何在内部创建的?我们在其中使用此代码的应用程序该应用程序运行在与我们创建的新应用程序不同的appDomain中,因此一个appDomain如何创建另一个appDomain,以及clr如何决定在哪个appDomain中创建哪些appDomain 不太清楚你想解决什么问题 AppDomains是在初始化托管应用程序时由.Net运行时创建的

在.Net中,我们可以通过编写

AppDomain domain = AppDomain.CreateDomain("MyDomain");

我的问题是,它是如何在内部创建的?我们在其中使用此代码的应用程序该应用程序运行在与我们创建的新应用程序不同的appDomain中,因此一个appDomain如何创建另一个appDomain,以及clr如何决定在哪个appDomain中创建哪些appDomain

不太清楚你想解决什么问题

AppDomains是在初始化托管应用程序时由.Net运行时创建的

当您启动ABC.EXE时,它将获得一个应用程序域。如果启动ABC.EXE的第二个实例,它将获得一个新的、独立的应用程序域


现在,如果您的ABC.EXE执行
AppDomain-domain=AppDomain.CreateDomain(“MyDomain”)然后您将有4个应用程序域,它们无法(轻松)相互通信。

应用程序域通常由主机创建。主机的示例有Windows Shell、ASP.NET和IE。当您从命令行运行.NET应用程序时,主机就是Shell。Shell为每个应用程序创建一个新的AppDomain。AppDomains也可以由.NET应用程序显式创建

您是否询问用于创建应用程序域的API?如果是这样,请查看AppDomain.CreateDomain查看@Brian:question updated,查看它。这是一个“babby是如何形成的”类问题。简单易懂,有无数令人讨厌的细节,却没有任何暗示你想深入到什么程度。拿起一本史蒂文·普拉奇纳的书,看看SSCLI20的源代码。