Csharp/C#教程:只读字典 – 多个线程调用.ContainsKey方法分享


只读字典 – 多个线程调用.ContainsKey方法

我有一个静态只读字典。 不会对此词典进行任何修改。

我有多个线程使用.ContainsKey(Key)从这本字典中读取。 例如

class MyData { private static private IDictionary _dictionary = new Dictionary(); MyData() { // Load Dictionary here } public string GetValue(int key) { if (_dictionary.ContainsKey(key)) { return _dictionary[key]; } } } 

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

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

如果您只是阅读,这是安全的。

如果在从多个线程读取之前所有的“添加”都已完成,那么就可以了。 仅仅因为它的readonly并不意味着它的线程安全 – 它不是。

也许您应该使用ReaderWriterLock来同步访问

如果您要同时编写数据(并且使用的是.NET 4.0),则可以使用ConcurrentDictionary

上述就是C#学习教程:只读字典 – 多个线程调用.ContainsKey方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/985690.html

(3)
上一篇 2021年12月21日
下一篇 2021年12月21日

精彩推荐