ConcurrentDictionary TryGetValue vs []。 []仍然是线程安全的吗?

时间:2013-06-13 13:30:55

标签: .net c#-4.0 concurrentdictionary

我有以下ConcurrentDictionary

ConcurrentDictionary<Guid, Session> sessions;

我知道sessions.TryGetValue(key, out session)是线程安全的,但我的问题是sessions[key]是否也是线程安全的?

sessions.TryGetValue(key, out session)返回true或false,具体取决于它是否能够获取值。

如果sessions[key]无法获取值,null会返回{{1}}吗?我想是的。任何人都可以确认或更多地阐明这一点吗?感谢。

1 个答案:

答案 0 :(得分:14)

它是线程安全的,但不会返回null

documentation明确指出:

  

例外

     

KeyNotFoundException
  检索该属性,并且集合中不存在密钥。