0

이 질문에는 이미 답변이 있습니다.

큰 WinForm 응용 프로그램을 개발하고 메모리 누수가 발생했습니다. 문제 중 하나는 양식을 닫아서 메모리를 확보하지 못했다는 것입니다 (.NET Memory Profiler를 사용함). 어떤 사람들은 메모리 누수를 방지하기 위해 이벤트 핸들러를 수동으로 폼에서 제거해야한다고 제안했습니다. 폼을 닫을 때 디자이너가 만든 Load, Form_Closing 이벤트 처리기를 제거해야한다는 의미입니까? .NET 4.5 사용하고 있습니다. 고맙습니다!

1 답변


-1

아니요. 이벤트 핸들러에 대한 우려는 메서드를 사용하여 객체가 핸들러를 실행하는 객체를 참조한다는 것입니다. 즉, 이벤트를 발생시키는 객체가 객체보다 훨씬 오래 동안 생기게되면 핸들러를 정리할 수 없습니다.

이벤트를 처리하는 객체가 이벤트를 발생시키는 객체에 대한 참조를 가지지 않기 때문에, 객체를 처리하는 객체보다 수명이 훨씬 짧은 이벤트를 발생시키는 객체에 전혀 문제가 없습니다.

연결된 질문


관련된 질문

최근 질문