c# - 只读字典 - 多线程调用 .ContainsKey 方法

标签 c# .net multithreading concurrency 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];   
        }
    }
}

这样做有任何线程问题吗?

最佳答案

如果没有人改变它:这很好。如果有偶尔的编辑,那么或许可以查看 ReaderWriterLockSlim,或者(我的偏好)编辑快照/副本并交换引用。

关于c# - 只读字典 - 多线程调用 .ContainsKey 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287075/

相关文章:

java - 线程 "main"java.lang.NullPointerException 中的 logResponse 异常

multithreading - 如何从 Perl 脚本中启动批处理文件并从中分离

java - 非公平锁如何比公平锁有更好的性能呢?

c# - 如何根据整数字段获取 List<> 中的项目?

c# - 两个日期之间存在意外的天数

c# - 使用 Windows 生物识别框架或任何其他方法通过 .Net 访问指纹读取器

c# - Messagebox.Show 和 DialogResult 在 MonoTouch 中等效

iphone - 如何通过 HTTP post 将数据字节发送到 .NET 服务器

c# - 如何在自分层树结构中的每个节点执行业务规则

c# - 多线程锁定/监控