자식 창을 닫으면 일부 외부 리소스 (BitmapImage 클래스의 이미지)에서 사용하는 메모리를 어떻게 해제 할 수 있습니까?WPF에서 창을 닫을 때 메모리 해제
모든 이미지가로드 된 상태에서 자식 창이 열리면 작업 관리자에서 내 응용 프로그램 (C# .NET 3.5의 WPF 사용)이 사용 중일 때 ~ 800,000KB를 사용하지만 닫을 때 메모리 사용량이 동일합니다. 나는 응용 프로그램이 Dispose()와 함께 WinForms 응용 프로그램처럼이 자원을 처리하지 않는다고 생각합니다. 방법.
Servy의 대답은 상당히 정확합니다. 그러나 이미 메모리를 버리고 있다면 GC가 메모리를 지울 때까지 약간의 시간이 걸릴 수 있다는 사실을 알고 있어야합니다. 특히 그것이 큰 기억이라면. 이는 관리되는 메모리의 세 번째 계층에서 끝날 수 있습니다. –
'using' 문에서 양식을 랩핑 한 다음 자신의'Dispose' 메소드를 구현 했습니까? –
누가 리소스, 비트 맵 이미지 등을 필요로하는지 결정하고 창을 닫을 때까지 기다리지 말고 메모리를 버리십시오. 그렇게하기위한 또 다른 방법은'Dispose'를 호출하는 것이 아니라 나중에'using() {} 절/문장'주위에 풀어 놓아야 할 모든 내용을 래핑하는 것입니다. – MethodMan