Wird das Ereignisverarbeitungsverfahren die Müllwiederherstellung beeinträchtigen?
Betrachten Sie den folgenden Code:
PCLASS wird mit Müll recycelt? Oder wird es weitermachen und ein Ereignis auslösen? Müssen Sie das Abonnement -Ereignis wie folgt stornieren:
<code class="language-c#">MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass = null;</code>
Antwort:
<code class="language-c#">MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass.MyEvent -= MyFunction; pClass = null;</code>
Der Müllrecycling des Vorfallverlags:
Abonnieren Sie MyEvent haben keinen Einfluss auf die Müllwiederherstellung von PCASS (Verlag). Das Müllrecycling des Zielobjekts:
Normalerweise hängt das Müllrecyclingverhalten davon ab, ob MyFunktion eine Instanz oder eine statische Methode ist:
Beispielmethode:
MyFunction auf MyEvent abonnieren, enthalten Zitate in MyClass. Daher kann es die Müllrückgewinnung des Zielobjekts verhindern. Sobald das Publisher -Objekt jedoch die Sammelbedingungen erfüllt, wird dieses Problem gestoppt.Statische Methode:
Das obige ist der detaillierte Inhalt vonVerhindern Event -Handler die Müllsammlung meiner Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!