다음과 같이 작업하고 있습니다 : VS 2010, .Net 4, WPF 및 .Net 메모리 프로필러 버전 4.6.40.0 Pro. 그들은 모두 Win7 64-bit에서 돌아가고 있습니다. 나는 .Net 메모리 프로파일 러 (Memory Profiler)를 사용하여 메모리 누수를 추적 해왔고, 문제가 해결 된 것처럼 보이지만 이해할 수없는 것을 발견했습니다. 우리는 3 개의 ContentPresenter 객체를 포함하는 컨트롤을 가지고 있습니다. 우리의 Cleanup 메소드에서 ContentPresenter 객체의 Content 속성을 null로 설정하면 컨트롤이 전혀 누출되지 않습니다. Content 속성을 null로 설정하지 않으면 큰 누수가 발생합니다 (각 테스트 약 3.5MB)."ContentPresenter.Content"memory leak
Google 검색에서 본 결과는이 문제를 직접 해결하지 못했습니다. ContentPresenter에 대한 설명서도 도움이되지 않았습니다. 여기 누 구가 콘텐츠를 누락시킨 이유를 이해하는 사람이 있습니까? 같은 것을 성취 할 수있는 더 좋은 방법이 있습니까?
공역 문제를 처리하기 위해 ContentPresenter 중 하나가 WindowsFormsHost와 BitmapSource간에 동적으로 전환된다는 점에 유의하십시오.
업데이트 : 여기에 정리의 관련 부분은 다음과 같습니다
첫째, 밖으로 널은 ContentPresenter에의
AddressGridPlaceholder.Content = null;
AddressFormPlaceholder.Content = null;
MapControlPlaceholder.Content = null;
왜 MEE 납니까 그런 다음 WindowsFormsHost
if (_hoster != null)
{
_hoster.Child = null; // Remove the map control reference first
_hoster.Dispose(); // Then Dispose
}
정리 방법을 참조해야합니다. –