В чем разница между MemoryCache.Add и MemoryCache.Set?

Ответы:

173

Addничего не делает (возвращает false), если для этого ключа уже есть значение. Setпри необходимости выполняет вставку или обновление.

Remove+ Addоставит пробел посередине, когда другой поток, запрашивающий этот ключ, не получит подсказки ( Setнет; своп обычно атомарный); как таковой, хотя Setимеет тот же конечный результат, что и Remove+ Add, различие в механизме важно, поскольку оно может повлиять на других вызывающих.

Например, Добавить :

Возвращаемое значение

Тип: System.Boolean true, если вставка прошла успешно, или false, если в кэше уже есть запись, имеющая тот же ключ, что и key.

Марк Гравелл
источник
1
setЗаменяет ли Политика, если элемент существует?
TS
1
Я только что увидел ваше сообщение почти годовой давности, я работаю над аналогичной проблемой. Для всех перегрузок SET требуется политика, поэтому ответ - да.
user2223142