मैं एक प्रोग्राम लिख रहा हूं जहां एक थ्रेड को कतार पर वस्तुओं को धक्का देने की आवश्यकता होती है, और एक या अधिक धागे कतार से वस्तुओं को पॉप करते हैं और उन्हें संसाधित करते हैं। स्मृति से बाहर निकलने से बचने के लिए, जब कतार पूरी हो जाती है तो मैं निर्माता धागा को सोना चाहता हूं। कुछ वस्तुओं की तुलना दूसरों की तुलना में अधिक प्राथमिकता है, इसलिए मैं उनको पहले संसाधित करना चाहता हूं। यदि वस्तुओं की प्राथमिकता समान है, तो मुझे वह पसंद है जिसे पहले संसाधित करने के लिए पहले जोड़ा गया था।थ्रेड-सेफ़ बुफर्ड अवलोकन योग्य प्राथमिकता कतार?
मैं एक WPF डेटा ग्रिड में शीर्ष 100 आइटम या तो प्रदर्शित करना चाहते हैं, तो यह भी एक यूआई धागा द्वारा पहुँचा जा करने की जरूरत है। अच्छा होगा अगर यह यूआई थ्रेड को सूचित कर सके कि एक अद्यतन भी है, यानी, IObservable लागू करता है।
वहाँ एक कंटेनर वर्ग कि यह सब करना होगा है?
बोनस अंक के लिए, मैं यकीन है कि पूरे कतार दोनों जब enqueing और dequeing बंद किया जा की जरूरत नहीं है हूँ।
.NET 4 कार्यान्वयन ठीक कर रहे हैं।
BlockingCollection http://msdn.microsoft.com/en-us/library/dd997371.aspx होनहार लग रहा है ... लेकिन यह प्राथमिकताओं के बारे में कुछ भी उल्लेख नहीं है। यह कहता है कि यह किसी भी चीज को एन्कापुलेट कर सकता है जो IProducerConsumerCollection लागू करता है ... क्या उनमें से एक प्राथमिकता कतार है? – mpen
इस उदाहरण को देखें http://msdn.microsoft.com/en-us/library/dd460690.aspx –
FWIW कार्यों को आरएक्स अवलोकनों में बदल दिया जा सकता है। ;) –