Является ли статическая переменная в библиотеке ( DLL) совместно используется всеми процессами, обращающимися к этой библиотеке?

Я знаю, что статическая переменная, используемая в веб-приложении, является общей для всех пользователей веб-приложения. Если у меня есть библиотека (DLL), которая использует некоторую статическую частную переменную, все ли приложения, использующие эту библиотеку, разделяют значение этой переменной?

Например, скажем, у меня есть следующий код в моей DLL:

private static bool isConnected = false;

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

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

Затем в Application A, я вызываю myDLL.Connect () , который устанавливает значение isConnected на True . Затем у меня есть приложение B, которое делает то же самое. Если приложение A позже вызывает myDLL.Disconnect () , видит ли приложение B isConnected как False , потому что два приложения используют один и тот же файл DLL со статической переменной? В этом случае файл DLL будет буквально тем же файлом по тому же пути.

(Ранее я задавал здесь похожий вопрос о веб-приложениях . Это не связано.)

21
задан Community 23 May 2017 в 12:17
поделиться