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

时间:2013-08-31 17:57:33

标签: c# multithreading dictionary

我有以下对象:

Dictionary<string, List<SubmitSm>> smDic

这是一个全局变量。

将smDic中的项目读取到该线程的本地对象,然后从其他线程执行相同操作时从smDic中删除复制的项目有什么影响/含义?每个线程读取和删除项目只能读取具有特定字典键的项目(它是一对一的关系)

1 个答案:

答案 0 :(得分:1)

我建议你在这种情况下使用System.Collections.Concurrent.ConcurrentDictionary。它还实现了IDictionary接口,并且可以以线程安全的方式用于执行添加和删除。见http://msdn.microsoft.com/en-us/library/dd287191.aspx

ToDictionary针对所请求的并发字典的变体,不需要中间转换为KeyValuePair,可以在此处找到:Extension method Gets "No overload for method" Error