एक सांत्वना आवेदन में विश्वसनीय टाइमर

वोट
78

मुझे पता है कि में हूँ नेट वहाँ तीन टाइमर प्रकार के होते हैं (देखें .नेट फ्रेमवर्क कक्षा लाइब्रेरी में टाइमर वर्ग की तुलना )। मैं अन्य प्रकार के रूप में एक लड़ी टाइमर अगर मुख्य थ्रेड व्यस्त है प्रवाहित हो जाते हैं चुना है, और मैं इस विश्वसनीय होना चाहिए।

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

एक सांत्वना आवेदन में यह टाइमर के साथ मुद्दा यह है कि जबकि टाइमर एक और धागा पर साथ निकला जा रहा है मुख्य थ्रेड कुछ नहीं कर रहा है, ताकि आवेदन बंद कर देता है है।

मैं एक जोड़ने की कोशिश की while trueपाश, लेकिन फिर मुख्य थ्रेड बहुत व्यस्त है जब टाइमर बंद हो जाता है।

01/08/2008 को 13:43
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
50

जैसे तुम कुछ का उपयोग कर सकते Console.ReadLine()मुख्य थ्रेड, इसलिए अन्य पृष्ठभूमि धागे (टाइमर धागे की तरह) ब्लॉक करने के लिए अभी भी काम करेगा। तुम भी एक का उपयोग कर सकते AutoResetEvent (जब आप की जरूरत है) निष्पादन ब्लॉक करने के लिए है, तो आप मुख्य थ्रेड जारी करने के लिए है कि AutoResetEvent वस्तु पर सेट () विधि कॉल कर सकते हैं। भी सुनिश्चित करें कि टाइमर वस्तु को अपने संदर्भ के दायरे और कचरा एकत्र से बाहर जाना नहीं है।

01/08/2008 को 13:56
का स्रोत उपयोगकर्ता

वोट
17

एक उपयोग करने पर विचार ManualResetEvent इसके प्रसंस्करण के अंत में मुख्य थ्रेड ब्लॉक करने के लिए, और कॉल Reset()यह पर एक बार टाइमर के संसाधन समाप्त होने के। यह कुछ लगातार चलाने के लिए की जरूरत है, तो एक सेवा प्रक्रिया के बजाय एक कंसोल अनुप्रयोग में इस ले जाने पर विचार।

01/08/2008 को 13:55
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more