111

我阅读了MSDN 文档,但并没有真正理解它。

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

那是对的吗?

4

1 回答 1

189

Addfalse如果该键已经存在值,则不执行任何操作(返回)。Set根据需要进行插入或更新。

Remove+当另一个线程查询该键没有得到任何线索时(不会;交换通常是原子的),Add会在中间留下一个间隙;Set因此,虽然与+Set具有相同的最终结果,但机制差异很重要,因为它可能会影响其他调用者。RemoveAdd

例如添加

返回值

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

于 2012-01-15T08:46:44.640 回答