日期:2014-05-18  浏览次数:21106 次

WPF下BitmapImage导致的内存泄露.
我的程序也发现一个这样的问题,
http://topic.csdn.net/u/20110331/00/9DD6C6E8-6079-4862-851F-1263E9A5E5FB.html

搜索了下,很多相关的问题,居然没找到解决方法.

相似的代码如下,调用后图片不释放.
C# code

    static class AppHelper
    {
        public static BitmapImage GetBitmapImage(string path)
        {
            BitmapImage bitmap = new BitmapImage();
            bitmap.BeginInit();
            bitmap.StreamSource = new MemoryStream(File.ReadAllBytes(path));
            bitmap.EndInit();
            bitmap.Freeze();
            return bitmap;
        }
    }



------解决方案--------------------
学习下,怎么知道内存是否泄漏啊?
------解决方案--------------------
不明白,帮顶!
------解决方案--------------------
我怎么没遇到呢?
------解决方案--------------------
这因该不是内存泄露吧.内存的使用情况并不是随着观看过的照片越来越多,内存会无限制的增加,而是你换一个图片后,它就把之前的卸载并加载新的图片
------解决方案--------------------
没有调用dispose?GC.collection?之类的方法试试
------解决方案--------------------
看了楼主给的链接有点明白是啥情况了.貌似是个问题,呵呵
------解决方案--------------------
顶了,这问题08年就有了,到现在还没解决..
探讨
我提交了一个BUG.如果大家有这个问题.也顶一下吧.

https://connect.microsoft.com/WPF/feedback/details/680742/bitmapimage-does-not-release-memory-leak-in-wpf4

------解决方案--------------------
嗯 绑定。