锁定单个字典条目而不是整个字典?

nw.*_*nw. 0 c# thread-safety locks

假设我有一个并且想要做类似下面的事情,除了我只想锁定我正在处理的特定字典条目而不是整个字典:static Dictionary<string, object>


lock(myDictionary)
{
   if(myDictionary["myKey"] == null)
   {
      myDictionary["myKey"] = new MyClass();
   }
}
Run Code Online (Sandbox Code Playgroud)

如果不编写我自己的Dictionary实现,这可能吗?

谢谢,

Ree*_*sey 6

您可以使用新ConcurrentDictionary<TKey,TValue>课程.它通过以比锁定整个字典更精细的方式锁定来有效地提供线程安全性.