C# Dictionary 二坑记录

C#中 Dictionary 确实是一个比较好用的字典类,但这个类是线程不安全的,在Web项目中使用是有风险的。

坑一、 在Web项目中用做临时数据缓存,在访问并发量上来之后,对 Dictionary 的存取操作会导致
IndexOutOfRangeException。

坑二、 在做某个系统服务的过程中,在某个对象的方法内 new 了一个 Dictionary 对象,然后给对象添加一些固定的键值对。单线程时正常运行,但开启多线程后,会报 键已存在 的错误。

在Web项目和可能会用到多线程的代码内,还是优先使用 ConcurrentDictionary 这个线程安全的字典类吧。

Dictionary

我来吐槽

*

*