2010-07-15 7 views
6

List<T> या HashSet<T> या थ्रेडसेफ़ में निर्मित कुछ और भी है?क्या सी # में थ्रेडसेफ और जेनेरिक IList <T> है?

मेरा प्रश्न Threadsafe and generic arraylist? जैसा है लेकिन मैं केवल इस सूची में शामिल होने के लिए सुरक्षा की तलाश कर रहा हूं, इसे हटा नहीं रहा हूं या पढ़ रहा हूं।

उत्तर

7

.NET 4.0 आप BlockingCollection<T> इस्तेमाल कर सकते हैं, लेकिन है कि अभी भी सभी कार्यों, न सिर्फ इसके लिए सुरक्षित थ्रेड जा बनाया गया है।

सामान्यतः, डेटा संरचना को डिजाइन करना असामान्य है जो कुछ परिचालनों को समेकन के लिए सुरक्षित होने की गारंटी देता है और अन्य ऐसा नहीं होता है। यदि आप चिंतित हैं कि पढ़ने के लिए संग्रह तक पहुंचने पर ओवरहेड है, तो इससे निपटने के लिए विशेष संग्रहों को देखने के लिए आपको अपने रास्ते से बाहर जाने से पहले कुछ बेंचमार्किंग करना चाहिए।

+0

+1 अवरुद्ध संग्रह पर अधिक जानकारी, और अन्य चिंताओं को संबोधित किया गया था। @LBushkin - नहीं, मैं सोच रहा था कि उसमें कोई भी प्रकार का निर्माण नहीं हुआ था जो पूरी तरह से थ्रेड-सुरक्षित था, ऐसा लगता है कि 4.0 मेरे प्रश्न बनाने के लिए इस्तेमाल किए गए प्रश्न से नया है। – Maslow

+0

@ मास्लो: हां, .NET 4 ने सिस्टम में कई नए संग्रह प्रकार पेश किए हैं। चयन। कॉन्क्यूरेंट नेमस्पेस (http://msdn.microsoft.com/en-us/library/dd287108.aspx)। – LBushkin

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