Heim > Backend-Entwicklung > C++ > Verhindern Event -Handler die Müllsammlung meiner Objekte?

Verhindern Event -Handler die Müllsammlung meiner Objekte?

Patricia Arquette
Freigeben: 2025-01-26 23:51:12
Original
665 Leute haben es durchsucht

Will Event Handlers Prevent Garbage Collection of My Objects?

Wird das Ereignisverarbeitungsverfahren die Müllwiederherstellung beeinträchtigen?

<:> Frage:

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>
Nach dem Login kopieren

Antwort:
<code class="language-c#">MyClass pClass = new MyClass();
pClass.MyEvent += MyFunction;
pClass.MyEvent -= MyFunction;
pClass = null;</code>
Nach dem Login kopieren

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:
    statische Vorfälle verhindern nicht das Recycling des Zielobjekts.
  • Andere Vorsichtsmaßnahmen:
  • Wenn der Verlag (z. dass das Zielobjekt durch Müll wiederhergestellt werden kann.
Wenn das statische Ereignis in Kombination mit Instanz -basierten Verarbeitungsverfahren verwendet wird, sind sie besonders gefährlich, da sie die Müllrückgewinnung von Zielobjekten unbegrenzt verhindern können.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage