c# Dictionary 值更新问题
我定时的更新Dictionary,在检测时发现,初始值和更新值都在,导致检测的时候是初始值,这个是为什么啊?Dictionary<string,DateTime>user...
我定时的更新Dictionary,在检测时发现,初始值和更新值都在,导致检测的时候是初始值,这个是为什么啊?
Dictionary<string, DateTime> userlist = new Dictionary<string, DateTime>();
lock (userlist)
{
if (this.userlist.ContainsKey(username))
{
userlist[username] = DateTime.Now;
}
else
{
userlist.Add(username,DateTime.Now);
}
} 展开
Dictionary<string, DateTime> userlist = new Dictionary<string, DateTime>();
lock (userlist)
{
if (this.userlist.ContainsKey(username))
{
userlist[username] = DateTime.Now;
}
else
{
userlist.Add(username,DateTime.Now);
}
} 展开
1个回答
展开全部
多线程的dictionary有ConcurrentDictionary(TKey, TValue)
http://msdn.microsoft.com/zh-cn/library/dd287191.aspx
http://msdn.microsoft.com/zh-cn/library/dd287191.aspx
追问
会不会因为我是一个线程创建修改,另一个线程再去访问造成的?
追答
极有可能。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询