У меня есть следующий класс на стороне сервера.
public class Sample
{
private enum Status
{
NotEvaluated,
Yes,
No
}
private static object _lockObj = new object();
private static Status _status = Status.NotEvaluated;
public static Status GetStatus()
{
if (_status == Status.NotEvaluated)
{
lock (_lockObj)
{
if (_status == Status.NotEvaluated)
{
//some evaluation code which sets status to either Yes/No;
_status = Status.Yes;
}
}
}
return _status;
}
}
Что-то не так в механизме блокировки сверху? мне нужно заблокировать вообще? Поскольку это серверная часть (будет несколько запросов) и переменная является статической, я думаю, что она должна быть заблокирована во время оценки.
поправь меня, если я ошибаюсь.
Спасибо