从 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。
有一些方法可以创建在进程之间共享的数据,但前提是代码做了一些不寻常的事情。普通变量不共享。
我有一个用 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。
有一些方法可以创建在进程之间共享的数据,但前提是代码做了一些不寻常的事情。普通变量不共享。