У меня есть библиотека классов, разработанная на c #, которая имеет нечто похожее, как показано ниже. Имеет класс ClassLib
. Он имеет одну открытую переменную somevariable
и 2 метода. Один метод присваивает значение этой переменной, и один метод использует эту переменную.
class ClassLib
{
public string somevariable;
public void SomeMethod1()
{
somevariable = "someData";
}
public void SomeMethod2()
{
string finalValue = somevariable;
}
}
Теперь у меня есть 2 разные службы 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();
}
}
Это вызывает оба метода.
Эти 2 службы Windows работают непрерывно. Итак, теперь мой вопрос: если обе службы работают одновременно и ссылаются на один и тот же класс в библиотеке классов, это повлияет на значение somevariable
. Поскольку одно приложение присваивает значение, а другое пытается использовать существующее значение из SomeMethod1
.
Другими словами, в WindowsService2, когда вызывается c1.SomeMethod2()
, будет ли значение somevariable
"Application 1 Data"
в любой момент времени? Будут ли значения перекрываться?