ObjectCache.AddOrGetExisting - 这个方法是什么用的?它完全没用吗?

时间:2014-06-18 14:03:45

标签: .net caching

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

这是方法的声明:

public override Object AddOrGetExisting(
    string key,
    Object value,
    CacheItemPolicy policy,
    string regionName
)

令我困惑的是参数"值"。 如果我在每次通话时都准备好值,我就不需要缓存 - 我只会使用最新值而不是缓存中的值

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

PS:实际上,ObjectCache的整个API看起来更像是一个字典而不是一个现成的缓存。要使用它,我必须创建一个包装器并编写许多其他逻辑,包括同步(我说许多类似的实现采用缓存用于正常使用) - 这不是我对BCL Cache实现的期望。这只是我关心的问题吗?

0 个答案:

没有答案