6

के लिए थ्रेडिंग लाइब्रेरी मैं एक अच्छी लाइब्रेरी की तलाश में हूं, अधिमानतः सी # में, जिसे मैं विंडोज़ सेवा में उपयोग कर सकता हूं और यह आवश्यक सभी मल्टीथ्रेडिंग कार्यक्षमता को संभालेगा।मल्टीथ्रेडेड विंडोज सेवा

सेवा हर एक्स मिनट चलाएगी, प्रक्रियाओं के लिए डेटाबेस की जांच करें, और उनमें से प्रत्येक के लिए एक धागा फैलाएगा और इसे चलाएगा।

प्रत्येक थ्रेड को अपवाद, लॉगिंग और ऐसे को संभालना चाहिए।

कोई सुझाव?

+0

पूर्ण स्रोत कोड नमूना के साथ कोई अंतिम समाधान? – Kiquenet

उत्तर

4

इस परियोजना http://www.codeplex.com/smartthreadpool

परियोजना विवरण

स्मार्ट थ्रेड पूल एक धागा पूल सी # में लिखा है पर विचार करें। यह .NET अंतर्निर्मित थ्रेड पूल से कहीं अधिक उन्नत है। यहाँ थ्रेड पूल सुविधाओं की एक सूची है:

  • थ्रेड की संख्या गतिशील पूल में धागे पर काम का बोझ के अनुसार बदल जाता है।
  • कार्य आइटम एक मूल्य वापस कर सकते हैं।
  • एक कार्य आइटम रद्द किया जा सकता है।
  • कॉलर थ्रेड का संदर्भ तब उपयोग किया जाता है जब कार्य आइटम निष्पादित (सीमित) होता है।
  • Win32 ईवेंट हैंडल की न्यूनतम संख्या का उपयोग, इसलिए एप्लिकेशन की हैंडल गिनती विस्फोट नहीं होगी।
  • कॉलर एकाधिक या सभी कार्य आइटम को पूरा करने के लिए प्रतीक्षा कर सकता है।
  • कार्य आइटम में PostExecute कॉलबैक हो सकता है, जिसे जल्द ही कार्य आइटम पूरा हो जाता है।
  • कार्य वस्तु के साथ राज्य वस्तु, स्वचालित रूप से निपटान किया जा सकता है।
  • कार्य आइटम अपवाद कॉलर को वापस भेजे जाते हैं।
  • कार्य वस्तुओं की प्राथमिकता है।
  • कार्य आइटम समूह।
  • कॉलर थ्रेड पूल और कार्य आइटम समूह की शुरुआत को निलंबित कर सकता है।
  • धागे प्राथमिकता है।
  • COM ऑब्जेक्ट्स चला सकते हैं जिनमें सिंगल थ्रेडेड अपार्टमेंट है।
  • समर्थन कार्य और Func प्रतिनिधि।
  • विंडोजसीई (सीमित)
  • के लिए समर्थन रनटाइम पर मैक्स थ्रेड और मिनी थ्रेड को बदला जा सकता है।
  • रद्द करें व्यवहार को अस्वीकार कर दिया गया है।
+1

फ़हाद, यह वही है जो मैं ढूंढ रहा हूं। मैं प्रतीक्षा करूंगा कि किसी के पास एक बेहतर विचार है, अन्यथा मैं आपका जवाब उत्तर के रूप में चिह्नित करूंगा। धन्यवाद – anon2009

5

यह गाल में थोड़ा जीभ है, लेकिन .NET Framework के बारे में कैसे? System.Threading नेमस्पेस में आपको इसके लिए आवश्यक सब कुछ है।

यदि आप .NET 4, या आरएक्स फ्रेमवर्क में बैकपोर्ट का उपयोग कर सकते हैं, तो टास्क समांतर लाइब्रेरी कुछ इसे आसान बना सकती है, लेकिन इसके बिना भी, मानक ढांचे में आपको जो भी चाहिए ।

+0

रीड, मैं एक पूर्ण समाधान की तलाश में हूं, एक कोड कार्यान्वयन जो सिस्टम का उपयोग करता है। थ्रेडिंग। नहीं, मैं अभी तक 4.0 का उपयोग नहीं कर सकता। धन्यवाद। – anon2009

+0

क्या आप आरएक्स फ्रेमवर्क का उपयोग कर सकते हैं? इसमें टास्क समांतर लाइब्रेरी का पूर्ण बैकपोर्ट शामिल है, जो उपयोगिता की एक बड़ी मात्रा प्रदान करता है (किसी तीसरे पक्ष की lib की तुलना में काफी बेहतर है, जिसे मैंने देखा है)। –

2

यदि आपको शेड्यूलिंग लाइब्रेरी की आवश्यकता है जिसमें बहु-थ्रेडिंग समर्थन है, तो मैंने पहले इसका उपयोग किया है: क्वार्ट्ज।नेट

http://quartznet.sourceforge.net/

+0

क्या आप मुझे इसका उदाहरण बता सकते हैं कि आपने इसका इस्तेमाल कैसे किया? – anon2009

+0

साइट पर एक अच्छा ट्यूटोरियल है, लेकिन आप मूल रूप से शेड्यूलिंग "ट्रिगर" (क्रॉन सिंटैक्स पर आधारित) सेट करते हैं जो यह निर्धारित करता है कि नौकरी की आग कब होती है, फिर आप विशिष्ट नौकरियों को ट्रिगर्स से जोड़ते हैं। क्वार्ट्ज.NET "शेड्यूलर" आपके लिए सभी समय संभालता है, और सेट समय पर आपकी नौकरियों को आमंत्रित करता है। http://quartznet.sourceforge.net/tutorial/index.html –

+0

हमने इसे आवधिक डेटाबेस क्वेरीज़ को लात मारने के लिए उपयोग किया, जिससे अन्य कार्रवाइयों को आग लग गई। –