是引用该库的所有进程共享的库(DLL)中的静态变量吗?

我知道Web应用程序中使用的静态变量是为Web应用程序中的所有用户共享的。 如果我有一个使用某个静态私有变量的库(DLL),那么使用该库的所有应用程序是否共享该变量的值?

例如,假设我的DLL中有以下代码:

private static bool isConnected = false; public static void Connect() { // TODO: Connect. isConnected = true; } public static void Disconnect() { // TODO: Disconnect. isConnected = false; } 

然后在应用程序A中,我调用myDLL.Connect() ,它将isConnected的值isConnectedTrue 。 然后我有一些应用程序B执行相同的操作。 如果应用程序A稍后调用myDLL.Disconnect() ,则应用程序B是否将isConnected视为False因为这两个应用程序共享具有静态变量的同一DLL文件? 在这种情况下,DLL文件在同一文件路径中实际上是相同的文件。

(我之前在这里问了一个关于Web应用程序的类似问题。它没有关系。)

不,他们不会。 它们被加载到单独的AppDomains ,无法看到彼此的实例。

即使它们引用相同的物理文件,每个应用程序也会获得自己的程序集私有实例