2010-05-30 11 views
23

सी # डिक्शनरी एक्सेस थ्रेड को सुरक्षित बनाने का सबसे आसान तरीका क्या है? अधिमानतः बस लॉक (ऑब्जेक्ट) का उपयोग कर लेकिन किसी अन्य विचार का स्वागत है!शब्दकोश थ्रेड-सुरक्षित एक्सेस करना चाहते हैं?

उत्तर

56

.NET 4 में आपके पास ConcurrentDictionary कक्षा है।

यह अपने आप को लिखने के लिए आप नेट के एक पुराने संस्करण का उपयोग करने के लिए, और चाहते हैं की जरूरत है:

  • अपनी कक्षा में एक निजी क्षेत्र के रूप में एक शब्दकोश लपेट
  • एक अलग private object lockObject
  • का उपयोग
  • शब्दकोश
+2

बस आश्चर्य के लिए हर पहुँच के आसपास है कि lockObject पर एक ताला ले, क्यों "एक अलग ताला वस्तु का उपयोग करें"? – MFatihMAR

+7

@MonoLightTech - थोड़ा सैद्धांतिक, लेकिन यदि डिक्शनरी क्लास के अंदर कोड या बाहरी कोड जिसे संग्रह को 'देखने' की आवश्यकता होती है, उस पर भी ताले लगाते हैं, तो आपके पास डेडलॉक हो सकता है। चिंताओं को अलग करने का प्रयोग करें: लॉकऑब्जेक्ट केवल लॉकिंग के लिए है। –

संबंधित मुद्दे