मूल रूप से चेतावनी यह है कि जब आप संदर्भ द्वारा अस्थिर क्षेत्र पास करते हैं, तो कॉलिंग कोड को अस्थिर तरीके से इसका इलाज करने के बारे में पता नहीं होता है। Interlocked.Increment के लिए जो संभवतः कोई फर्क नहीं पड़ता, विधि की प्रकृति के कारण - लेकिन फिर आप इंटरलॉक का उपयोग कर रहे हैं तो वैरिएबल वैसे भी होने की आवश्यकता नहीं है।
आम तौर पर, मुझे लगता है कि मैं दो मिश्रणों से बचने से बचूंगा - अगर आप इंटरलाक्ड का उपयोग कर रहे हैं, तो इसे हर जगह (इसे पढ़ने के लिए Interlocked.CompareExchange(ref counter, 0, 0)
का उपयोग करके) करें। मैं नहीं कह सकता कि मैं अक्सर व्यक्तिगत रूप से अस्थिरता का उपयोग करता हूं। सरल काउंटर के लिए I इंटरलाक्ड का उपयोग कर सकता है, लेकिन अधिकांश कार्यों के लिए मुझे लॉक का उपयोग करने की अधिक संभावना है।
स्रोत
2009-01-08 17:28:47
मैं कहूंगा कि इंटरलाक्ड विधियां अभी भी किसी अन्य क्षेत्र के साथ किसी भी तरह से इसका इलाज नहीं कर रही हैं - यह सिर्फ इतना है कि * सभी * फ़ील्ड इंटरलाक्ड द्वारा विशेष तरीके से संभाले जाते हैं। –
सहमत हुए। अस्थिर इंटरलॉक एपीआई के लिए अप्रासंगिक है। लेकिन कुछ मामलों में, इंटरलाक्ड और अस्थिर मिश्रण करना बहुत उपयोगी है। – IamIC
पार्टी के लिए थोड़ा देर हो चुकी है, लेकिन @IAMIC: विस्तार से देखभाल करने के लिए कौन से मामले होंगे? – jajdoo