Допустим, у меня есть Класс с частным участником, к которому я хочу получить доступ к нескольким публичным методам. Эти публичные методы будут вызваны различными потоками, следовательно, необходимость синхронизации. < /P>
Код: Выделить всё
public class MyClass
{
private Object SomeSharedData = new Object();
public void MethodA()
{
lock( SomeSharedData) {
// do something
MethodB();
}
}
public void MethodB()
{
lock( SomeSharedData) {
// do something
}
}
}
это гарантированно будет безопасным? Другими словами, обрабатывает ли .NET об этом путем отсчета блокировки, так что, когда я выхожу из этих методов, блокировка уменьшается? Или .NET выполняет какую -то магию за кулисами, в результате чего он просто игнорирует все последующие блокировки на объекте, происходящем из одного и того же потока?
Подробнее здесь: https://stackoverflow.com/questions/368 ... -statement