MemoryCache.Add और MemoryCache.Set के बीच क्या अंतर है?


104

मैंने MSDN प्रलेखन पढ़ा, लेकिन वास्तव में इसे समझ नहीं पाया।

मेरा मानना ​​है कि व्यवहार Set"मौजूदा को बदलें, या जोड़ें" (परमाणु)।

क्या वो सही है?

जवाबों:


173

Addकुछ नहीं करता है (रिटर्न false) अगर उस कुंजी के लिए पहले से ही एक मूल्य है।Setआवश्यक के रूप में एक सम्मिलित या अद्यतन करता है।

Remove+ Addबीच में एक अंतराल छोड़ देगा जब एक और धागा जो उस कुंजी को क्वेरी Setकरता है उसे कोई सुराग नहीं मिलेगा ( नहीं; स्वैप आमतौर पर परमाणु है); जैसे, जबकि Setएक ही है अंतिम परिणाम के रूप में Remove+ Add, तंत्र अंतर महत्वपूर्ण है क्योंकि यह अन्य कॉल पर प्रभाव पड़ सकता है।

उदाहरण के लिए जोड़ें :

प्रतिलाभ की मात्रा

प्रकार: System.Boolean सच यदि सम्मिलन सफल हुआ, या गलत है यदि कैश में पहले से ही एक प्रविष्टि है जिसमें कुंजी के समान कुंजी है।


1
setयदि आइटम मौजूद है तो क्या नीति को प्रतिस्थापित करता है?
TS

1
मैंने अभी आपके लगभग साल पुराने संदेश को देखा, मैं इसी तरह के मुद्दे पर काम कर रहा हूं। सभी सेट ओवरलोड को एक नीति की आवश्यकता होती है, इसलिए उत्तर हां है।
user2223142
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.