Mar*_*909 24 .net c# concurrency multithreading dictionary
我有一个静态只读字典.不会对此词典进行任何修改.
我有多个线程使用.ContainsKey(Key)从这本字典中读取.例如
class MyData
{
private static private IDictionary<int, string> _dictionary = new Dictionary<int, string>();
MyData()
{
// Load Dictionary here
}
public string GetValue(int key)
{
if (_dictionary.ContainsKey(key))
{
return _dictionary[key];
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样做有任何线程问题吗?
Mar*_*ell 20
如果没有人改变它:这很好.如果偶尔进行编辑,那么可以查看ReaderWriterLockSlim,或者(我的偏好)编辑快照/副本并交换引用.