Что-то я туплю. Как проще всего сделать, чтобы метод при первом обращении отработал целиком, а при повторных обращениях брал результат первого обращения?
Например,
private static Value _value;
public static Value GetValue()
{
if (_value != null)
return _value;
// длительные вычисления _value
return _value;
}
Проблема в многопоточности. Если два потока одновременно ывзовут метод, то value будет вычисляться два раза. Без залочивания всего метода тут можно как-то обойтись?