मैं इसे ब्लॉकिंग कोलेक्शन में लपेटकर एक ConcurrentDictionary को कार्यान्वित करने का प्रयास करता हूं लेकिन सफल नहीं हुआ।ब्लॉकिंग कोलेक्शन में ConcurrentDictionary को कैसे लपेटें?
मैं समझता हूँ कि एक चर घोषणाओं, आदि BlockingCollection जैसे ConcurrentBag<T>
, ConcurrentQueue<T>
के साथ काम
तो, एक ConcurrentBag एक BlockingCollection में लिपटे बनाने के लिए मैं घोषणा करेंगे और इस तरह का दृष्टांत:
BlockingCollection<int> bag = new BlockingCollection<int>(new ConcurrentBag<int>());
लेकिन ConcurrentDictionary के लिए यह कैसे करें? मुझे निर्माता और उपभोक्ता पक्ष दोनों पर ब्लॉकिंग कोलेक्शन की अवरुद्ध कार्यक्षमता की आवश्यकता है।
शब्दकोश (और ConcurrentDictionary भी) वस्तुओं के क्रम को सुरक्षित नहीं करता है। क्या आप अपने निर्माता-उपभोक्ता परिदृश्य का वर्णन कर सकते हैं? – Dennis
@ डेनिस, मुझे इसके बारे में पता है। एक निर्माता स्टोर समवर्ती डिक्शनरी में KeyValuePairs, और एक उपभोक्ता कार्य एक int बढ़ाता है और संबंधित कुंजी के साथ int मिलान करता है तो KeyValuePair को हटा देता है। मैं ऐसा इसलिए करता हूं क्योंकि कार्यकर्ता कार्य समवर्ती डिक्शनरी को मानों के साथ पॉप्युलेट करते हैं लेकिन मनमाने ढंग से क्रम में, उपभोक्ता कार्य सुनिश्चित करता है कि प्राप्त मूल्य सही क्रम में चालू/काम किए जाते हैं। क्या एक ConcurrentDictionary को ब्लॉकिंग कोलेक्शन में लपेटा जा सकता है? –
आप किस समाधान के साथ आए थे? मैं एक समान समस्या का अच्छा समाधान खोजने की कोशिश कर रहा हूं जहां निर्माता उपभोक्ता द्वारा आवश्यक आदेश में वस्तुओं का उत्पादन नहीं करता है। (पुरानी पोस्ट मुझे पता है, लेकिन यह एक कोशिश के लायक है) – Kim