c# - Where do I handle asynchronous exceptions? -
निम्नलिखित कोड पर विचार करें:
class Foo {// उबाऊ भागों निजी TcpClient सॉकेट छोड़े गए ; सार्वजनिक शून्य कनेक्ट () {socket.BeginConnect (होस्ट, पोर्ट, नए एसिंक कॉलबैक (cbConnect), quux); } निजी शून्य cbConnect (IAsyncResult परिणाम) {// blah}}
यदि सॉकेट
के बाद एक अपवाद फेंकता है आरंभ करें कनेक्ट
वापस और < कोड> सीबीकनेक्ट कहलाता है, वह कहां पॉप अप करता है? क्या यह भी पृष्ठभूमि में फेंकने की इजाजत है?
एसेनच प्रतिनिधि के लिए अपवाद हैंडलिंग का कोड नमूना मैं समझता हूं कि TcpClient पैटर्न के समान होगा।
सिस्टम का उपयोग कर; सिस्टम का उपयोग करें। समय। Remoting.Messaging; कक्षा कार्यक्रम {स्थैतिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {नया प्रोग्राम ()। चलाएँ (); Console.ReadLine (); } शून्य भागो () {कार्रवाई का उदाहरण = नया एक्शन (लड़ी पिरोया); IAsyncResult ia = उदाहरण.बीजिनइनवोक (नया एसिंक कॉलबैक (पूर्ण), रिक्त); // विकल्प # 1: / * ia.AsyncWaitHandle.WaitOne (); कोशिश {example.EndInvoke (ia); } पकड़ (अपवाद पूर्व) {Console.WriteLine (ex.Message); } * /} शून्य थ्रेडेड () {नया अनुप्रयोग एक्सेप्शन ("कबुम"); } शून्य पूर्ण (IAsyncResult एआर) {// विकल्प # 2: एक्शन उदाहरण = (एशिनक्रसल्ट के रूप में ए.आर.)। एसिंनकैलिगेट एक्शन के रूप में; कोशिश {example.EndInvoke (एआर); } पकड़ (अपवाद पूर्व) {Console.WriteLine (ex.Message); }}}
Comments
Post a Comment