多线程问题

这两天写程序发现,多线程同时读写一个配置文件,会抛异常导致失败,看来必须加锁才行,但是这样性能又会受损失,但这是没办法的事,最后的解决方案是,把多线程产生的结果先保存在一个ConcurrentDictionary中,然后再用单线程写入配置文件,这样速度避免了对文件写操作的竞争,用单线程反而非常的快!

在解决上面问题的过程中,遇到一个非常奇怪的bug,那就是如果只是用普通的Dictionary,在多线程不断的往里面Add item的时候,居然会导致把Key和Value同时为null的item给加进去,最终解决办法是用ConcurrentDictionary,加的方法改为用TryAdd。

原文地址:https://www.cnblogs.com/researcher/p/5008304.html