我有一本静态的只读字典。 不会对此字典进行修改。

我有多个线程使用.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,或者(我个人偏好)编辑快照/副本并交换引用。

09-10 07:54
查看更多