MemoryCache.Add和MemoryCache.Set有什么区别?

时间:2012-01-15 08:40:36

标签: .net memorycache

我读了MSDN documentation,但并不是真的理解它。

我认为Set的行为是“替换现有的,或添加”(原子地)。

这是对的吗?

1 个答案:

答案 0 :(得分:146)

如果已存在该键的值,则

Add不执行任何操作(返回false)。 Set会根据需要进行插入或更新。

当查询该密钥的另一个线程没有线索时,{p> Remove + Add会在中间留下间隙(Set不会;交换通常是原子的);因此,虽然SetRemove + Add具有相同的最终结果,但机制差异很重要,因为它可能会影响其他来电者。

例如Add

  

返回值

     

类型:System.Boolean如果插入成功则为true;如果缓存中已存在与键具有相同键的条目,则为false。