C# 应用程序及其加载的dll的两个实例
我有一个可执行文件(VC++),它使用不同的命令行参数运行两次,所以基本上有两个实例在运行。这个可执行文件加载一个C#dll,我想知道的第一件事是dll的两个实例是否将加载到两个不同的实例。如果是,那么我在dll中有一个静态类,它将如何实例化,即,静态类将有两个实例,还是在两个进程之间共享C# 应用程序及其加载的dll的两个实例,c#,dll,exe,multiple-instances,static-class,C#,Dll,Exe,Multiple Instances,Static Class,我有一个可执行文件(VC++),它使用不同的命令行参数运行两次,所以基本上有两个实例在运行。这个可执行文件加载一个C#dll,我想知道的第一件事是dll的两个实例是否将加载到两个不同的实例。如果是,那么我在dll中有一个静态类,它将如何实例化,即,静态类将有两个实例,还是在两个进程之间共享 当我尝试运行可执行文件的两个实例时,只有一个实例成功加载dll。进程加载到它自己的AppDomain中,并且它们之间没有共享任何内容,即使dll加载到各自的AppDomain中。因此,每个进程中都有两个单独的
当我尝试运行可执行文件的两个实例时,只有一个实例成功加载dll。进程加载到它自己的AppDomain中,并且它们之间没有共享任何内容,即使dll加载到各自的AppDomain中。因此,每个进程中都有两个单独的静态类实例。其次,DLL加载到主机进程中。如果您有私有DLL,那么它们将在进程中单独加载,不进行任何共享 进程空间将不同,因此,例如,DLL中的全局变量将特定于每个单独的进程。内存中的代码可能会被共享(Windows通常使用引用计数来提高该部分的效率)