2011-09-15 11 views
6

यदि मुझे हमेशा एडहैंडलर का उपयोग करने के बाद RemoveHandler को कॉल करने की आवश्यकता है, तो ऐसा करने के लिए सबसे अच्छी जगह कहां है?vb.net में, अगर मैं AddHandler का उपयोग करता हूं, तो क्या मुझे RemoveHandler का उपयोग करना है?

मैंने निम्नानुसार कई समान प्रश्न खोजे हैं, लेकिन मुझे समझ में नहीं आता है।

When and where to call the RemoveHandler in VB.NET?

AddHandler/RemoveHandler Not Disposing Correctly

मैं सी # या vb.net में कचरा संग्रहण सोचा अप्रयुक्त वस्तुओं की देखभाल करेंगे। इसके अलावा, vb.net डिजाइनर में, यह स्वचालित रूप से निपटान उप उत्पन्न करता है। इसलिए मैंने प्रोग्रामिंग रिलीज संसाधन पर बिल्कुल ध्यान नहीं दिया। क्या मुझे कोई स्मृति रिसाव की समस्या होगी? सीखने शुरू करने के लिए कृपया मुझे मेरे लिए कुछ लिंक/दस्तावेज़ प्रदान करें।

Protected Overrides Sub Dispose(ByVal disposing As Boolean) 
    Try 
     If disposing AndAlso components IsNot Nothing Then 
      components.Dispose() 
     End If 
    Finally 
     MyBase.Dispose(disposing) 
    End Try 
End Sub 

बहुत बहुत धन्यवाद!

+0

आपको उस संदर्भ को पोस्ट करना होगा जिसमें आप AddHandler का उपयोग कर रहे हैं। – CommonSense

उत्तर

10

मैं हमेशा AddHandler उपयोग करने के बाद RemoveHandler कॉल करने के लिए की जरूरत है, जहां इतनी

आप जरूरी ऐसा करने की जरूरत नहीं है करने के लिए सबसे अच्छी जगह है।

यदि आपको स्रोत स्रोत (ईवेंट वाला एक) आपके ग्राहक से बाहर निकलने जा रहा है तो आपको केवल निकालने के बारे में चिंता करने की आवश्यकता है। यदि आप किसी फॉर्म के भीतर काम कर रहे हैं, तो फॉर्म का निपटारा करने वाला फॉर्म स्रोत को आगे बढ़ाने से रोक देगा, और दोनों ऑब्जेक्ट्स दायरे से बाहर होंगे और (अंत में) कचरा इकट्ठा हो जाएगा, इसलिए आपको कोई समस्या नहीं होगी।

यह समस्या अधिक उत्पन्न होती है यदि आप किसी अन्य ऑब्जेक्ट पर किसी अन्य ऑब्जेक्ट से किसी ईवेंट की सदस्यता ले रहे हैं जो लंबे समय तक जीवित वस्तु से पहले "दूर जायेगा"। यह कचरा कलेक्टर के साथ भी एक स्मृति रिसाव का कारण बन सकता है। उस स्थिति में, जब आप ईवेंट को सुनते थे तो आप RemoveHandler को कॉल करना चाहते हैं। यह कब होना चाहिए इसके लिए कोई भी मार्गदर्शन नहीं है, हालांकि, यह प्रश्न और आपके आवेदन तर्क पर निर्भर करता है।

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

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