在多线程环境中读取/删除字典中的项



我有以下对象:

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"方法"无过载";错误

最新更新