Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从2个不同的应用程序访问类库的公共变量_C#_Public_Class Library - Fatal编程技术网

C# 从2个不同的应用程序访问类库的公共变量

C# 从2个不同的应用程序访问类库的公共变量,c#,public,class-library,C#,Public,Class Library,我有一个用c#开发的类库,它有如下类似的功能。它有一个classClassLib。它有一个公共变量somevariable和两个方法。一个方法为该变量赋值,另一个方法使用该变量 class ClassLib { public string somevariable; public void SomeMethod1() { somevariable = "someData"; } public void SomeMethod2() {

我有一个用c#开发的类库,它有如下类似的功能。它有一个class
ClassLib
。它有一个公共变量
somevariable
和两个方法。一个方法为该变量赋值,另一个方法使用该变量

class ClassLib
{
    public string somevariable;
    public void SomeMethod1()
    {
        somevariable = "someData";
    }
    public void SomeMethod2()
    {
        string finalValue = somevariable;
    }
}
现在我有两个不同的windows服务,其中引用了这个类库

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

public class Application1
{
    public void AppMethod1()
    {
        ClassLib c1 = new ClassLib();
        c1.somevariable = "Application 1 Data";
        c1.SomeMethod2();
    }
}
此类将值分配给公共变量,并调用第二个方法来使用它

Windows服务2:

public class Application2
{
    public void AppMethod2()
    {
        ClassLib c1 = new ClassLib();
        c1.SomeMethod1();
        c1.SomeMethod2();
    }
}
这将调用这两种方法。
这两个windows服务连续运行。所以现在我的问题是,如果两个服务同时运行并引用类库中的同一个类,这会影响
somevariable
的值吗。因为一个应用程序正在分配值,而另一个应用程序正在尝试使用
SomeMethod1
中的现有值

换句话说,在WindowsService2中,当调用
c1.SomeMethod2()
时,
somevariable
的值是否会在任何时间点变为
“应用程序1数据”
?值是否重叠?

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

有一些方法可以创建在进程之间共享的数据,但前提是代码执行了一些异常操作。正常变量不共享