2010-12-17 16 views
12

मैं एक सी # आवेदन जो संदेशनिदान ObjectDisposedException "सुरक्षित संभाल बंद कर दिया गया"

सुरक्षित संभाल बंद कर दिया गया के साथ एक ObjectDisposedException मार रहा है

यह रूप में जल्द ही मैं लांच के रूप में होता है आवेदन।

अफसोस की बात है कि स्टैक ट्रेस वास्तव में अनुपयोगी है (नीचे देखें)। क्या यह निर्धारित करने के लिए कोई तरीका है कि कॉल को अतुल्यकालिक रूप से किस तरह से प्रयास किया जा रहा था?

क्या DoAsyncCall() वास्तव में एक async विधि कॉल का अर्थ है?

mscorlib.dll! System.Threading.EventWaitHandle.Set() + 0xe बाइट्स
mscorlib.dll! System.Runtime.Remoting.Messaging.AsyncResult.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage संदेश) + 0x12f बाइट्स
mscorlib.dll! System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage संदेश, System.Runtime.Remoting.Messaging.IMessageSink replySink = {सिस्टम। Runtime.Remoting.Messaging.AsyncResult}) + 0x279 बाइट्स
mscorlib.dll! System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.DoAsyncCall() + 0x32 बाइट्स mscorlib.dll! System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack (वस्तु ओ) + 0x28 बाइट्स
mscorlib.dll! System.Threading._ThreadPoolWaitCallback.WaitCallback_Context (वस्तु राज्य) + 0x2f बाइट्स
mscorlib.dll! System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback कॉलबैक, वस्तु राज्य) + 0x6f बाइट्स
mscorlib.dll! System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal (सिस्टम। थ्रेडिंग ._ThreadPoolWaitCallback tpWaitCallBack) + 0x53 बाइट्स
mscorlib.dll ! System.Threading._ThreadPoolWaitCallback.PerformWaitCallback (वस्तु राज्य) + 0x59 बाइट्स

उत्तर

11

समस्या का उपयोग मेरे उपयोग() {} ब्लॉक के उपयोग के कारण हुआ था।

using (WaitHandle handle = asyncResponse.AsyncWaitHandle) 
    { 
     asyncResponse.AsyncWaitHandle.WaitOne(); 
     string response = asyncRequest.EndInvoke(asyncResponse); 
     asyncResponse.AsyncWaitHandle.Close(); 
     return response; 
    } 

जब बुला धागा ब्लॉक का उपयोग बाधित है अभी भी WaitHandle पर बंद बुला रहा है।

12

तुम कुछ है जो अभी भी एक अलग धागा द्वारा किया जा रहा निपटान कर रहे हैं।

+0

इसके लिए धन्यवाद - क्या मैं इसका निपटारा करने का कोई तरीका है और मैं अभी भी इसका उपयोग कर रहा हूं? – mchr

+4

@mchr: डीबग, फंक्शन पर ब्रेक, 'सिस्टम। रनटाइम.इंटरोप सर्विसेज। सैफहैंडल। डिस्प्ले'। – SLaks

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