मैं निम्नलिखित लॉक बयान है:क्या लॉक वैरिएबल को अस्थिर घोषित किया जाना चाहिए?
private readonly object ownerLock_ = new object();
lock (ownerLock_)
{
}
मैं अपने ताला चर के लिए volatile कीवर्ड उपयोग करना चाहिए?
private readonly volatile object ownerLock_ = new object();
MSDN पर मैंने देखा कि यह आमतौर पर एक क्षेत्र है कि ताला लगा के बिना पहुँचा जा सकता है के लिए इस्तेमाल किया है, इसलिए यदि मैं लॉक का उपयोग मैं अस्थिर उपयोग करने की आवश्यकता नहीं है?
MSDN से:
अस्थिर संशोधक आम तौर पर एक क्षेत्र है कि पहुँच क्रमानुसार करने ताला बयान का उपयोग किए बिना से अधिक थ्रेड द्वारा पहुँचा है के लिए प्रयोग किया जाता है।
हमें प्रश्न का उत्तर देने के लिए उससे कहीं अधिक संदर्भ की आवश्यकता है। लॉक का उपयोग करने वाली वस्तुओं के संबंध में यह लॉक कहां मौजूद है? –
यह निश्चित रूप से थ्रेड सुरक्षित है क्योंकि यह वर्तमान में मौजूद है। जब आप लॉक {} ब्लॉक में कोड जोड़ते हैं तो कोई गारंटी संभव नहीं होगी। –
आपको 'readonly' ऑब्जेक्ट को लॉक करने की आवश्यकता नहीं है ... जिसमें यह' readonly' है ... – NominSim