MemoryCache.Add ve MemoryCache.Set arasındaki fark nedir?


104

MSDN belgelerini okudum ama gerçekten anlamadım.

Davranışının Set"var olanı değiştir veya ekle" (atomik olarak) olduğuna inanıyorum .

Bu doğru mu?

Yanıtlar:


173

Addfalseo anahtar için zaten bir değer varsa hiçbir şey yapmaz (döndürür ). Setgerektiğinde ekleme veya güncelleme yapar.

Remove+ Addbu anahtarı sorgulayan başka bir iş parçacığı hiçbir ipucu alamayacağı zaman ortada bir boşluk bırakır ( Setdeğişmez; takas tipik olarak atomiktir); bu nedenle , + ile Setaynı sonuca sahip olsa da, diğer arayanları etkileyebileceği için mekanizma farkı önemlidir.RemoveAdd

Örneğin Add :

Geri dönüş değeri

Tür: System.Boolean, ekleme başarılıysa doğru, önbellekte zaten anahtarla aynı anahtara sahip bir giriş varsa false.


1
setÖğe varsa Politikanın yerini alıyor mu ?
TS

1
Neredeyse yıllık mesajınızı yeni gördüm, benzer bir konu üzerinde çalışıyorum. Tüm SET aşırı yüklemeleri bir Politika gerektirir, bu nedenle cevap evettir.
user2223142
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.