从 2 个不同的应用程序访问 class 库的 public 变量

Accessing the public variable of class library from 2 different application

我有一个用 c# 开发的 class 库,它具有如下所示的类似内容。它有一个 class ClassLib。它有一个 public 变量 somevariable 和 2 methods.One 方法将值分配给这个变量,一个方法使用这个变量。

class ClassLib
{
    public string somevariable;
    public void SomeMethod1()
    {
        somevariable = "someData";
    }
    public void SomeMethod2()
    {
        string finalValue = somevariable;
    }
}

现在我有 2 个不同的 windows 服务,其中引用了这个 class 库。

Windows服务1中,有一些类似的代码。

public class Application1
{
    public void AppMethod1()
    {
        ClassLib c1 = new ClassLib();
        c1.somevariable = "Application 1 Data";
        c1.SomeMethod2();
    }
}

这个class是给public变量赋值,然后调用第二个方法来使用它。

Windows 服务 2 :

public class Application2
{
    public void AppMethod2()
    {
        ClassLib c1 = new ClassLib();
        c1.SomeMethod1();
        c1.SomeMethod2();
    }
}

这会同时调用这两种方法。
这 2 个 windows 服务 运行 continuously.So 现在我的问题是,如果这两个服务同时 运行 并引用 class 库中的相同 class ,这会影响 somevariable 的值吗?由于一个应用程序正在分配值,而另一个应用程序正在尝试使用 SomeMethod1.
中的现有值 换句话说,在WindowsService2中,调用c1.SomeMethod2()时,somevariable的值是否会在任意时刻变成"Application 1 Data"?这些值会重叠吗?

没有。每个 Windows 服务都作为自己的进程运行,这意味着它有自己的堆。所以这两个服务之间没有共享内存,即使它们引用相同的 DLL。

有一些方法可以创建在进程之间共享的数据,但前提是代码做了一些不寻常的事情。普通变量不共享。