Skip to main content
 首页 » 编程设计

c#之ConcurrentDictionary 中的 Keys 集合是否是线程安全的

2024年01月22日28itcoder

<分区>

我必须通过一些键从 ConcurrentDictionary 中删除项目。像这样:

ConcurrentDictionary<SomeClass, string> dict = new ConcurrentDictionary<SomeClass, string>(); 
//adding some values 
var keys = dict.Keys.Where(k => k.Name == "Example"); 
foreach (var key in keys) 
    dict.TryRemove(key, out _); 

问题是:我在开始循环时枚举键集合。如果有人同时更改字典怎么办? dict.Keys 是否返回快照?