在多线程环境中读取/删除字典中的项
本文关键字:字典 删除 读取 多线程 环境 | 更新日期: 2023-09-27 18:29:42
我有以下对象:
Dictionary<string, List<SubmitSm>> smDic
这是一个全局变量。
将smDic中的项目读取到该线程的本地对象中,然后在其他线程执行相同操作时从smDic删除复制的项目,这会产生什么影响?每个读取和删除项目的线程只能读取具有特定字典键的项目(这是一对一关系)
在这种情况下,我建议您使用System.Collections.Concurrent.ConcurrentDictionary
。它还实现了IDictionary
接口,并且可以以线程安全的方式用于执行添加和删除。看见http://msdn.microsoft.com/en-us/library/dd287191.aspx
可在此处找到用于请求的并发字典的ToDictionary
的变体,该变体不需要中间转换为KeyValuePair
:Extension method Gets"方法"无过载";错误