У меня есть метод, к которому обращаются из нескольких потоков одновременно, и я хочу убедиться, что только один поток может находиться внутри тела любого метода.Заблокировать использование всех методов
Может ли этот код быть реорганизован на что-то более общее? (Кроме блокировки внутри государственного собственности
public class StateManager : IStateManager
{
private readonly object _lock = new object();
public Guid? GetInfo1()
{
lock (_lock)
{
return State.Info1;
}
}
public void SetInfo1(Guid guid)
{
lock (_lock)
{
State.Info1 = guid;
}
}
public Guid? GetInfo2()
{
lock (_lock)
{
return State.Info2;
}
}
public void SetInfo2(Guid guid)
{
lock (_lock)
{
State.Info2 = guid;
}
}
}
Я не знаю ни одного способа, чтобы зафиксировать, как это без заявления отдельных замков, как у вас есть. Мне интересно узнать, не ошибаюсь ли я! :) – Chris
Я не думаю, что любой из ваших методов небезопасен, почему вы даже блокируете здесь? – Andrey
Андрей - это фиктивный пример. Я делаю больше в телах методов. –