В чем разница между 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.