मैं वर्तमान में LimitedConcurrencyLevelTaskScheduler यहाँ विस्तृत http://msdn.microsoft.com/en-us/library/ee789351.aspxनेट टीपीएल: कार्य प्राथमिकता के साथ सीमित समवर्ती स्तर कार्य शेड्यूलर?
उपयोग कर रहा हूँ मैं इतना है कि व्यक्तियों कार्य प्राथमिकता दी जा सकती है, इस को बढ़ाने के लिए चाहते हैं। इन प्राथमिकताओं को थ्रेड प्राथमिकता के लिए मानचित्र की आवश्यकता नहीं है। इसे केवल उस क्रम को प्रभावित करना चाहिए जिसमें कार्य शुरू हो गए हैं।
किसी को भी इस तरह के एक कार्य अनुसूचक का एक उदाहरण के पता है? (शेड्यूलिंग सामान का एक बहुत तो यह बहुत अच्छा होगा अगर वहाँ एक मौजूदा समाधान था मेरे सिर पर है)
अनुसूचक एक कतार के लिए एक LinkedList का उपयोग करता है कि:
निम्नलिखित कोड 4, दो प्राथमिकता कतारों और कार्यक्रम पहले कतार पर एक काम की एक अधिकतम संगामिति स्तर के साथ एक अनुसूचक पैदा करता है। इसे सॉर्टेडलिस्ट में बदलने का प्रयास करें जहां टी एक ऐसी संरचना है जिसमें कार्य और प्राथमिकता के लिए पूर्णांक होता है, और टी। प्राथमिकता पर सूची को सॉर्ट करें। –
@IgbyLargeman - कुंजियों (प्राथमिकताओं) अद्वितीय होना है - [SortedList] (http://msdn.microsoft.com/en-us/library/ms132319.aspx) नहीं एक आदर्श समाधान हो सकता है। अधिकांश प्राथमिकता प्रणालियों में केवल कुछ स्तर होते हैं, और एकाधिक वस्तुओं को समान प्राथमिकता –
असाइन करने की अनुमति देते हैं, यह एक बुरा विचार है। एक कतार आंतरिक रूप से कतारों का एक सेट (सरणी) है - प्रत्येक प्राथमिकता के लिए - एक बेहतर तरीका है। प्राथमिकताएं अद्वितीय नहीं हैं और उनमें से एक छोटी संख्या तक ही सीमित है। एक लिंक्ड सूची का भी उपयोग न करें - मेरे पास "कतार" है जो आंतरिक रूप से 4096 तत्वों के साथ-साथ ऑपॉइंटर्स के सरणी का उपयोग करता है। बहुत कम आवंटन - आइटम को "पृष्ठ" से हटा दिया जाता है, जिसे एनडी में जोड़ा जाता है। कम आवंटन, इकट्ठा करने के लिए कम कचरा। – TomTom