【发布时间】:2011-04-29 03:07:23
【问题描述】:
我在服务器端有以下课程。
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;
}
}
上面的锁定机制有什么问题吗?我需要锁定吗?因为它是服务器端的(会有多个请求)并且变量是静态的,所以我认为它应该在评估时被锁定。
如果我错了,请纠正我。
谢谢
【问题讨论】:
标签: c# variables static locking