我有一本静态的只读字典。 不会对此字典进行修改。
我有多个线程使用.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];
}
}
}
这样做有线程问题吗?
最佳答案
如果没有人对其进行突变:这很好。如果偶尔进行编辑,则可以查看ReaderWriterLockSlim,或者(我个人偏好)编辑快照/副本并交换引用。