.net ObjectCache.AddOrGetExisting-此方法用于什么?它完全没用吗?

.net ObjectCache.AddOrGetExisting-此方法用于什么?它完全没用吗?,.net,caching,.net,Caching,首先,我知道该做什么(System.Runtime.Caching命名空间)。我的问题是它为什么存在 这里是该方法的声明: public override Object AddOrGetExisting( string key, Object value, CacheItemPolicy policy, string regionName ) 让我困惑的是参数“值”如果每次调用时都准备好了一个值,我就不需要缓存-我只使用最新的值,而不是缓存中的值 我能想象的唯一

首先,我知道该做什么(System.Runtime.Caching命名空间)。我的问题是它为什么存在

这里是该方法的声明:

public override Object AddOrGetExisting(
    string key,
    Object value,
    CacheItemPolicy policy,
    string regionName
)
让我困惑的是参数“值”如果每次调用时都准备好了一个值,我就不需要缓存-我只使用最新的值,而不是缓存中的值

我能想象的唯一用法是提供Lazy作为值。但是,如果这是唯一有用的用法,为什么不将
Func valueProvider
作为参数接收呢

PS:实际上,ObjectCache的整个API看起来更像一个字典,而不是一个现成的缓存。要使用它,我必须创建一个包装器并编写大量附加逻辑,包括同步(我说许多类似的实现都采用缓存进行正常使用)——这不是我期望从BCL缓存实现中得到的。这是我唯一关心的吗?

看起来你并不孤单: