मैं समझता हूं कि एक विंडोज सेवा में, Thread.Sleep(timeout)
के बजाय Timer
का उपयोग करना बेहतर है। हालांकि, सभी कोड उदाहरणों में मैं इंटरनेट पर पा सकता हूं जो Azure श्रमिकों को संभालने में सक्षम था, यह Thread.Sleep(timeout)
है जिसका उपयोग Timer
के बजाय किया जाता है।.NET में Azure कार्यकर्ता भूमिका में थ्रेड स्लीप या टाइमर का उपयोग करना?
यहां तक कि डिफ़ॉल्ट दृश्य स्टूडियो में कार्यकर्ता परियोजना टेम्पलेट में प्रदान किए गए कोड का उपयोग करता है एक Thread.Sleep
:
public class WorkerRole : RoleEntryPoint
{
public override void Run()
{
// This is a sample worker implementation. Replace with your logic.
Trace.WriteLine("$projectname$ entry point called", "Information");
while (true)
{
Thread.Sleep(10000);
Trace.WriteLine("Working", "Information");
}
}
// ...
}
अब तक, मैं भी Thread.Sleep
मेरी कार्यकर्ताओं में, लेकिन वास्तव में क्यों समझे बिना उपयोग कर रहे हैं। तो मेरा सवाल है, के बजाय Azure कार्यकर्ता भूमिका में Thread.Sleep(timeout)
का उपयोग क्यों करें? विंडोज सेवा और एज़ूर कार्यकर्ता के बीच क्या अंतर है जो इस अंतर को समझता है कि हमें इस तरह के आवेदन को कैसे समझना है? क्या Azure श्रमिकों में Timer
का उपयोग करना अच्छा या बुरा है?
इस के मूलभूत सिद्धांतों को समझाते हुए कुछ संसाधनों के लिंक के साथ कोई स्पष्टीकरण स्वागत है क्योंकि मुझे अब तक कुछ भी नहीं मिला।
यह वास्तव में विंडोज़ एज़ूर-विशिष्ट प्रश्न नहीं है। एक [शानदार स्टैक ओवरफ्लो उत्तर] है (http://stackoverflow.com/questions/2822441/system-timers-timer-threading-timer-vs-thread-with-whileloop-thread-sleep-for) जो काफी हद तक चला जाता है विभिन्न टाइमर के बारे में विस्तार से। यह विंडोज़ एज़ूर वीएम पर भी लागू होता है, क्योंकि वे विंडोज सर्वर 2008 वीएम हैं। –
लिंक के लिए धन्यवाद। यह दिलचस्प है लेकिन मुझे ऐसा नहीं लगता कि यह वास्तव में मेरे प्रश्न का उत्तर देता है। मैं समझता हूं कि विंडोज़ एज़ूर वीएम भी है, लेकिन अगर यह _just_ वीएम था, तो क्यों न केवल विंडोज सेवाओं का उपयोग करना? इस मामले में, मेरे प्रश्न की आवश्यकता नहीं होगी। – Guillaume
आह ... अच्छा, आप निश्चित रूप से विंडोज सेवाओं का उपयोग कर सकते हैं। हालांकि, विंडोज़ एज़ूर में विंडोज सेवा का उपयोग करने के लिए, आपको कुछ काम करने की आवश्यकता होगी। यहां एक [ब्लॉग पोस्ट] है (http://blogs.msdn.com/b/mwasham/archive/2011/03/30/migrating-a-windows-service-to-windows-azure.aspx) दिखा रहा है कि इसमें क्या शामिल है। Windows Azure वर्कर या वेब रोल द्वारा प्रदान की गई घटनाओं के भीतर अपना कोड चलाने के लिए यह अधिक सरल है। सर्वरफॉल्ट पर भी [इसके बारे में जवाब] (http://serverfault.com/a/365054/99269) देखें। –