asp.net 单例模式下线程安全问题.
请教下,单例模式
public class Singleton
{
private static Singleton _instance = null;
static Singleton()
{
_instance = new Singleton();
}
public static Singleton Instance { get {return _instance; } }
public string Username
{
get
{
return 当前访问者的用户名(域用户)。
}
}
public object Dosome()
{
callWebservice(Username);
}
}
在application的 global.asax文件下。有如下代码
void Session_Start(object send , EventArg e)
{
object obj = Singleton.Instance.Dosome();
}
以上的Session_Start的过程,可能出现如下情况吗?
第一步 : user1登录 运行到 Dosome()获取到Singleton.Instance.Username= user1. 这里假设时间停止。
第二步 : user2在这个时间点登录,此时Singleton.Instance.Username = user2.
第三步 : 就是第一步的时间已经恢复正常,这里他再取调用callWebservice(Username ) ,这里的Username 可能是user2 吗?
------解决方案--------------------