问题描述
|
我有一个带有私有字典对象的静态类。在静态构造
函数中初始化此对象,然后每次由计时器对象(也位于静态类中)引发TimerElapsed事件时进行
修改。
我的
页面使用get()
方法访问字典。这些
页面可供公众查看,因此许多
页面可能会同时发生。
我是否需要担心锁定字典对象以防止
页面在更新时试图读取它?
解决方法
您可能会发现,使用ConcurrentDictionary(如果使用的是.NET 4)是更可靠的解决方案。否则,当两个或多个线程尝试同时写入(或读取/写入)时,您可能会遇到问题。
如果您没有.NET 4,则可能更喜欢将字典包装到一个使用锁的类中,以防止访问共享位,因此您不会在各处散布锁。