【发布时间】:2018-07-06 10:32:04
【问题描述】:
我有一个用 c# 开发的类库,它具有如下所示的类似内容。它有一个类ClassLib。它有一个公共变量somevariable 和2 个方法。一个方法将值分配给这个变量,一个方法使用这个变量。
class ClassLib
{
public string somevariable;
public void SomeMethod1()
{
somevariable = "someData";
}
public void SomeMethod2()
{
string finalValue = somevariable;
}
}
现在我有 2 个不同的 Windows 服务,其中引用了这个类库。
在Windows Service 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 的值在任何时候都会是 "Application 1 Data" 吗?这些值会重叠吗?
【问题讨论】:
标签: c# public class-library