我有ConcurrentDictionary<string, SomeClass>
,我将其用作未过期的缓存。我想定期从外部数据源更新它。
我可以使用TryUpdate
或类似的方法来填充ConcurrentDictionary
。但我也想删除一些不再存在于数据源中的值。
如何实现?
我知道使用ConcurrentDictionary
作为源来构建Dictionary
的知识。但这不适用,因为我要更新已经存在的ConcurrentDictionary
,并且不能定期构造一个新的。
**编辑**
我可以分两步进行此操作
遍历源Dictionary
并在目标TryUpdate
上调用ConcurrentDictionary
。
遍历目标ConcurrentDictionary
并删除源Dictionary
中不存在的每个密钥
但是我想以一种更优雅的方式呈现
答案 0 :(得分:0)
尝试让后台线程枚举ConcurrentDictionary并检查源。如果它不在源中,请从字典中将其删除。