WPF

2011-11-13 10 views
8

में Winforms घटकों से अनचाहे अपवादों को संभालना मेरा एप्लिकेशन WPF में बनाया गया है लेकिन इसमें कुछ WinForms घटक शामिल हैं जिन्हें हमने लिखा है। जब WinForms घटकों में से एक में अपवाद को अनचाहे किया जाता है तो यह एप्लिकेशन को क्रैश करता है।WPF

मैंने WPF ईवेंट के लिए DispatcherUnhandledException लागू किया है। यह अच्छा है क्योंकि यह मुझे एक त्रुटि प्रदर्शित करने और दुर्घटना से बचने के लिए अपवाद के रूप में अपवाद चिह्नित करने की अनुमति देता है।

क्या मैं गैर-WPF अपवादों के साथ कुछ ऐसा कर सकता हूं। मैं मानक WinForms संवाद की उम्मीद कर रहा था जो आने वाला था और उपयोगकर्ता को जारी रखने या काफी आवेदन करने की इजाजत देता था?

संपादित करें: WinForms अपवाद DispatcherUnhandledException में पकड़े जाते हैं लेकिन ई को सेट करने से एप्लिकेशन को क्रैश होने से रोक नहीं आता है।

+1

क्या आप कुछ फॉर्म दिखा सकते हैं कि आप विंडोज फॉर्म फॉर्मों का उपयोग/उपयोग कैसे कर रहे हैं? –

+0

'डिस्पैचर UnnhandledException' को UI थ्रेड में किसी भी अनचाहे अपवादों को पकड़ना चाहिए। क्या आपके WinForms घटक अन्य धागे का उपयोग करते हैं? या आप उन्हें गलती से अन्य धागे से एक्सेस कर रहे हैं? – svick

+0

@DavidePiras वे WPF मार्कअप में WindowsFormsHost नियंत्रण में होस्ट किए जाते हैं। जैसे windowsFormsHost.Child = [WinForms नियंत्रण का उदाहरण] –

उत्तर

8
+0

नहीं, मैंने इन्हें आजमाया नहीं है। एक नज़र डालेगा –

+0

बहुत बहुत धन्यवाद! SetUnhandledExceptionMode चाल चल रहा था। –

+0

आपने वास्तव में उनका उपयोग कैसे किया है? मैंने थ्रेडएक्सप्शन के लिए हैंडलर सेट करने के लिए डब्ल्यूपीएफ ऐप स्टार्टअप पर कोशिश की है और फिर मैं सेट अपहैंडेड एक्सेप्शन मोड को कैचएक्सप्शन पर सेट करता हूं लेकिन हैंडलर को कभी भी कॉल नहीं किया जाता है .. –

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