나는 WriteableBitmap 메모리를 해제하는 방법을 알아 내려고하고있다.WPF WriteableBitmap 메모리 누수?
다음 코드 절에서 WriteableBitmap의 백 버퍼를 "BigImage"(3600 * 4800 px, 테스트 용)의 많은 양의 데이터로 채 웁니다. 비트 맵과 이미지가 일치하는 행을 주석 처리하면 null로 설정하면 메모리가 해제되지 않고 응용 프로그램이 ~ 230MB를 소모하며 이미지와 비트 맵이 더 이상 사용되지 않을 때도 !
코드 끝에서 알 수 있듯이 GC.Collect()를 호출하여 메모리를 해제해야합니다.
그렇다면 WriteableBitmap 객체에서 사용하는 메모리를 해제하는 올바른 방법은 무엇입니까? GC.Collect()가 유일한 방법입니까?
도움이 될 것입니다.
추신. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다.
private void buttonTest_Click(object sender, RoutedEventArgs e)
{
Image image = new Image();
image.Source = new BitmapImage(new Uri("BigImage"));
WriteableBitmap bitmap = new WriteableBitmap(
(BitmapSource)image.Source);
bitmap.Lock();
// Bitmap processing
bitmap.Unlock();
image = null;
bitmap = null;
GC.Collect();
}
http://stackoverflow.com/questions/1534983/how-to-dispose-a-writeable-bitmap-wpf/2422496#2422496 – nyxtom