2009-01-06 6 views
19

इस सवाल का संक्षिप्त रूप: जब, अगर कभी, यह एक बहु-क्रम WinForms आवेदन में Forms.Timer उपयोग करने के लिए उपयुक्त है?Threading.Timer बनाम Forms.Timer

अधिक विशेष रूप से, मैं एक ऐसे सिस्टम को आर्किटेक्ट कर रहा हूं जो एकाधिक सिस्टम का उपयोग करता है। थ्रेडिंग। प्रक्रियाओं को अतुल्यकालिक रूप से लॉन्च करने के लिए, उन असीमित प्रक्रियाओं के परिणामों वाले कतारों की जांच करें, और एप्लिकेशन के मुख्य रूप द्वारा दिखाए जाने वाले आंकड़ों को अपडेट करें।

इस तरह के एक आवेदन में, क्या वास्तव में आवेदन आंकड़ों की जांच करने और उन्हें मुख्य रूप में आकर्षित करने के लिए फॉर्म का उपयोग करना उचित है या क्या यह एप्लिकेशन के चिकनी चलने में केवल एक रिंच फेंक देगा?

उत्तर

23

Forms.Timer टाइमर पंजीकृत करता है एक संदेश भेजने के लिए जब घड़ी बंद हो जाता है। उठाई गई घटना को जीयूआई कार्यक्रम की तरह माना जाता है। System.Threading.Timer थ्रेड अवरुद्ध दृष्टिकोण का उपयोग करता है। असल में, आपको अपने जीयूआई उन्मुख टाइमर (उपयोगकर्ता इंटरफ़ेस पर कुछ प्रभाव जोड़ने के लिए) और Threading.Timer शेड्यूलिंग कार्यों और अन्य चीज़ों के लिए Forms.Timer का उपयोग करना चाहिए।

+0

लेख के नीचे डकोटा में दाऊद ने उल्लेख के अनुसार, Forms.Timer ईवेंट भेजता घड़ी बंद हो जाता है ** और ** यदि यूआई पहले से ही व्यस्त नहीं है ** और * * फार्म धागे पर निष्पादित करता है। यह आप के लिए तुल्यकालन काम और पार धागा कॉल से कुछ नहीं करता है। – Suncat2000

13

MSDN एक comparison article है कि इस विषय न्याय करता था।

+2

बेकार लेख। इस चर्चा के प्रयोजनों के लिए, यदि आप दोनों के बीच दिए गए मतभेदों को सारांशित करना चाहते हैं तो यह अच्छा होगा (थ्रेडिंग। टिमर को सिंक्रनाइज़ेशन की आवश्यकता होती है लेकिन अधिक नियंत्रण प्रदान करता है, फॉर्म। टिमर जरूरी नहीं कि प्रत्येक टिक इत्यादि के लिए एक ईवेंट उत्पन्न करे।) – Shog9

+1

उत्कृष्ट। मेरे पढ़ने के लिए "पढ़ने के लिए" ढेर पर। –

+0

@ t3rse: लिंक मर चुका है :( –

2

मैं क्या Mehrdad और डेविड ने कहा के साथ सहमत हैं, लेकिन आप जानकारी होनी चाहिए कि टाइमर समयबद्धता या आदेश या निष्पादन की कोई गारंटी नहीं प्रदान करते हैं। बहुत सारे टाइमर और एप्लिकेशन बस लटकाएंगे ;-)

+0

उतना मुझे पता था कि। इस विशेष वास्तुकला में, न तो निष्पादन और न ही किसी विशेष समयबद्धता के एक नियतात्मक आदेश की आवश्यकता है। –

संबंधित मुद्दे