gpt4 book ai didi

c# - 库 (DLL) 中的静态变量是否由引用该库的所有进程共享?

转载 作者:IT王子 更新时间:2023-10-29 04:34:42 24 4
gpt4 key购买 nike

我知道 Web 应用程序中使用的静态变量是为 Web 应用程序中的所有用户共享的。如果我有一个使用某些静态私有(private)变量的库 (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 的值设置为 True。然后我有一些应用程序 B 做同样的事情。如果应用程序 A 稍后调用 myDLL.Disconnect(),应用程序 B 是否会将 isConnected 视为 False,因为这两个应用程序共享同一个 DLL 文件静态变量?在这种情况下,DLL 文件实际上是同一文件路径中的同一文件。

(我之前问过一个关于 web applications 有点类似的问题 here. 没有关系。)

最佳答案

不,他们不会。它们在单独的 AppDomains 中加载,并且看不到彼此的实例。

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

关于c# - 库 (DLL) 中的静态变量是否由引用该库的所有进程共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com