在线程内部使用全局字典

udi*_*idu 1 c# asp.net c#-4.0

假设我有一个Dictionary<string, string>.字典public static在我的控制台程序中声明.

如果我正在使用线程,我想从一个线程做到foreach这一点Dictionary但同时另一个线程想要将项添加到字典中.这会导致这里的错误,因为我们Dictionary在另一个线程中使用foreach循环运行它时无法修改它们.

为了绕过这个问题,我在字典上的每个操作上的同一个静态对象上创建了一个锁定语句.

这是绕过这个问题的最佳方法吗?我Dictionary可以非常大,我可以有很多线程想要在它上面.就目前而言,事情可能非常缓慢.

Tho*_*que 7

尝试使用ConcurrentDictionary<TKey, TValue>专为此类场景设计的a .

有一个很好的教程点击这里了解如何使用它.