질문:
다음 코드를 고려하세요.
<code class="language-c#">MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass = null;</code>
pClass는 가비지 수집되나요? 아니면 지속되어 계속해서 이벤트를 발생시키나요? 다음과 같은 이벤트를 구독 취소해야 합니까?
<code class="language-c#">MyClass pClass = new MyClass(); pClass.MyEvent += MyFunction; pClass.MyEvent -= MyFunction; pClass = null;</code>
정답:
이벤트 게시자의 쓰레기 수거:
MyEvent 구독은 pClass(게시자)의 가비지 수집에 영향을 주지 않습니다.
대상 객체의 가비지 컬렉션:
일반적으로 가비지 수집 동작은 MyFunction이 인스턴스 메서드인지 정적 메서드인지에 따라 달라집니다.
기타 참고 사항:
위 내용은 이벤트 처리기가 내 개체의 가비지 수집을 방지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!