Рекурсивная / вложенная блокировка в C# с оператором блокировки [дублировать]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Рекурсивная / вложенная блокировка в C# с оператором блокировки [дублировать]

Сообщение Anonymous »

Я посмотрел здесь на Stackoverflow и на MSDN, и не могу поверить, что я не смог найти этот вопрос, затянутый там в интернете. < /p>
Допустим, у меня есть Класс с частным участником, к которому я хочу получить доступ к нескольким публичным методам. Эти публичные методы будут вызваны различными потоками, следовательно, необходимость синхронизации. < /P>

Код: Выделить всё

public class MyClass
{
private Object SomeSharedData = new Object();

public void MethodA()
{
lock( SomeSharedData) {
// do something
MethodB();
}
}

public void MethodB()
{
lock( SomeSharedData) {
// do something
}
}
}
Обратите внимание, что метод и methodb может быть вызван пользователями этого класса, но Methoda также вызывает метод >
это гарантированно будет безопасным? Другими словами, обрабатывает ли .NET об этом путем отсчета блокировки, так что, когда я выхожу из этих методов, блокировка уменьшается? Или .NET выполняет какую -то магию за кулисами, в результате чего он просто игнорирует все последующие блокировки на объекте, происходящем из одного и того же потока?

Подробнее здесь: https://stackoverflow.com/questions/368 ... -statement
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»