एक समवर्तीबैग बैग से वस्तुओं को जोड़ने और निकालने के लिए कई धागे की अनुमति देगा। यह संभव है कि एक थ्रेड बैग में एक आइटम जोड़ देगा और फिर उसी आइटम को वापस ले जायेगा। यह कहता है कि ConcurrentBag unordered है, लेकिन यह कितना unordered है? एक धागे पर, बैग एक स्टैक की तरह काम करता है। क्या अनियंत्रित मतलब "एक लिंक्ड सूची की तरह नहीं है"?ConcurrentBag <T> के लिए वास्तविक दुनिया का उपयोग क्या है?
ConcurrentBag के लिए असली दुनिया का उपयोग क्या है?
क्या आप मतलब है "यह कैसे अव्यवस्थित है" था? या तो एक निर्धारित आदेश है या नहीं है। यह कहने की तरह है "एल्विस कितना मृत है?" –
संग्रहीत तत्वों का क्रम क्लाइंट का व्यवसाय नहीं है। इसलिए एक एपीआई बिंदु दृश्य से, "unordered" हमेशा गणना के क्रम ('GetEnumerator' विधि से) को संदर्भित करता है। –
"आदेश नहीं दिया गया" का अर्थ है कि आदेश के बारे में कोई गारंटी नहीं है।वर्तमान कार्यान्वयन का व्यवहार यह प्रतीत होता है कि यह एक स्टैक की तरह कार्य करता है जब एक ही थ्रेड जोड़ रहा है और हटा रहा है, और एक कतार की तरह जब एक थ्रेड किसी अन्य संग्रह से लेता है। लेकिन मैं उस व्यवहार पर भरोसा नहीं करता। थोड़ी अधिक जानकारी के लिए http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=842 देखें। ऑर्डर महत्वपूर्ण नहीं है, और यदि धागे उत्पादक और उपभोक्ता दोनों हो सकते हैं, तो 'ConcurrentBag'' ConcurrentQueue' से बेहतर प्रदर्शन दे सकता है। –