博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Dictionary的线程安全问题
阅读量:5975 次
发布时间:2019-06-20

本文共 628 字,大约阅读时间需要 2 分钟。

C# Dictionary 为引用类型,在多线程的代码中,如果在单线程的意义上存在着Add和Foreach的顺序结构,线程数量越多就越容易出现异常 :Error:System.InvalidOperationException: Collection was modified; enumeration operation may not execute.

我选择的处理方式是使用线程安全的集合ConcurrentDictionary 进行单独处理,添加的粒度需要根据代码结构自己考量,初始化例子如下:

 

Dictionary<string, string> tempO365ContainerColls =  new Dictionary<string, string> ();

ConcurrentDictionary<string, string> TempO365ContainerColls = new ConcurrentDictionary<string, string>(tempO365ContainerColls , StringComparer.OrdinalIgnoreCase);

MSDN 中文文档链接 https://msdn.microsoft.com/zh-cn/library/dd287191(v=vs.110).aspx 

 

转载于:https://www.cnblogs.com/GS1001/p/9517907.html

你可能感兴趣的文章
openstack 之 windows server 2008镜像制作
查看>>
VI快捷键攻略
查看>>
Win server 2012 R2 文件服务器--(三)配额限制
查看>>
卓越质量管理成就创新高地 中关村软件园再出发
查看>>
linux rsync 远程同步
查看>>
httpd的manual列目录漏洞
查看>>
myeclipse2014破解过程
查看>>
漫谈几种反编译对抗技术
查看>>
Timer 和 TimerTask 例子
查看>>
Spring BOOT 集成 RabbitMq 实战操作(一)
查看>>
安装python3.5注意事项及相关命令
查看>>
进程通信之无名信号量
查看>>
并发串行调用接口
查看>>
Mongodb3.0.5副本集搭建及spring和java连接副本集配置
查看>>
FileStream大文件复制
查看>>
TDD 的本质不是 TDD
查看>>
linux命令学习——ps
查看>>
freemark 判断list是否为空
查看>>
JS的一些扩展:String、StringBuilder、Uri
查看>>
solr的suggest模块
查看>>