यदि आपका प्रोग्राम (प्रक्रिया) मर रहा है तो आपको स्थिर घटनाओं (या किसी भी घटना) की सदस्यता समाप्त करने की आवश्यकता नहीं है। ओएस ओएस को आपकी प्रक्रिया की सभी याददाश्त जारी करने का ख्याल रखेगा। हालांकि, यदि आप किसी स्थैतिक ईवेंट की सदस्यता लेते हैं या किसी ऑब्जेक्ट को ऑब्जेक्ट की ओर इशारा करते हुए किसी ऑब्जेक्ट को इंगित करते हैं, तो आप ऑब्जेक्ट की सदस्यता लेते हैं, और आप चाहते हैं कि वह ऑब्जेक्ट जीसी के लिए योग्य हो - आपको ईवेंट में सदस्यता समाप्त करने की आवश्यकता है।
और हमेशा सभी घटनाओं की सदस्यता समाप्त करने के लिए हमेशा अच्छा अभ्यास होता है। आपके स्रोत कोड/उत्पाद के जीवनकाल के दौरान आप कभी भी नहीं जानते कि आपकी ऑब्जेक्ट्स का जीवनकाल (किसी और द्वारा) बदल दिया गया है ...
स्रोत
2011-09-02 07:16:09
"आपको अपने प्रोग्राम से बाहर निकलने से पहले अपने हैंडलर को अलग करने की आवश्यकता होगी": बिल्कुल नहीं! एक बार जब प्रक्रिया बंद हो जाती है तो इससे कोई फर्क नहीं पड़ता कि आपने सदस्यता समाप्त की है या नहीं ... यह केवल उन ऑब्जेक्ट्स हैं जो ईवेंट की सदस्यता ले चुके हैं, जीसी के लिए योग्य नहीं होंगे और मेमोरी में रहेंगे –
आपको हैंडलर के ऑब्जेक्ट से पहले अपने हैंडलर को अलग करना होगा जीसीड होगा अगर प्रक्रिया निकलती है, इससे कोई फर्क नहीं पड़ता। यदि प्रदर्शन परिवर्तनों की देखभाल करना बंद करने के बाद आपका ऐप चल रहा है, तो आपको उस बिंदु पर सदस्यता समाप्त करनी चाहिए ताकि जीसी ठीक से काम करे। – user169771
दस्तावेज़ीकरण कहता है: "चूंकि यह एक स्थिर घटना है, इसलिए जब आपके आवेदन का निपटारा किया जाता है, तो आपको अपने ईवेंट हैंडलर को अलग करना होगा, या मेमोरी लीक का नतीजा होगा।" https://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.displaysettingschanged.aspx?f=255&MSPPError=-2147217396 – CLS