मेरे पास एक कार्यकर्ता धागा है जो मेरे आवेदन के लिए महत्वपूर्ण है।
यह new Thread(method).Start();
के साथ बनाया गया है, मैं इसमें शामिल नहीं हूं, मुझे उम्मीद है कि जब तक मेरा प्रोग्राम चलता है तब तक यह चलता है।
हालांकि, ऐसा हो सकता है कि इस धागे पर एक अपवाद पकड़ा गया है; और एक धागे के रूप में धागा (कुछ अंतिम लॉगिंग के बगल में) बंद हो जाएगा। इस गंभीर त्रुटि के लिए एक पुनर्प्राप्ति संभव नहीं है। चूंकि थ्रेड ऐप के लिए महत्वपूर्ण है, इसलिए इसे भी बंद करना होगा।एक महत्वपूर्ण कार्यकर्ता धागा की निगरानी कैसे करें
अब मेरा प्रश्न है: मैं अपने धागे की स्थिति की निगरानी कैसे कर सकता हूं?
क्या आप
- पोल
IsAlive
संपत्ति? - पकड़े गए अपवाद को पुनर्स्थापित करें और
AppDomain.CurrentDomain.UnhandledException
के साथ काम करें? event
लागू करें जो मेरे पृष्ठभूमि धागे के अंत को इंगित करेगा?BackgroundWorker
का उपयोग करें, जोRunWorkerCompleted
लागू करता है? (लेकिन क्या पृष्ठभूमिवर्कर वास्तव में लंबे समय तक चलने वाले धागे के लिए सही विकल्प है?)- कुछ completley अलग है?
संपादित करें: ->दुर्घटना जल्दी और अक्सर
अभी, मैं इस समस्या Application.Exit()
फोन करके हल किया। यही कारण है कि एक विकल्प भी है :)
लेकिन मैं एक नियंत्रण के लिए एक संदर्भ की जरूरत है - केवल इस purpuse के लिए: एक नियंत्रण/ – tanascius
यूआई थ्रेड पर कोड निष्पादित करने का एक सुविधाजनक तरीका है। सभ्य रूप से एकमात्र रास्ता नहीं है। आम तौर पर आपको किसी बिंदु पर वापस स्विच करने की आवश्यकता होती है, मैं ASAP को पसंद करता हूं। –