首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF BitmapImage不处理

WPF BitmapImage不处理
EN

Stack Overflow用户
提问于 2013-10-14 16:32:57
回答 1查看 2.7K关注 0票数 3

我已经从filestream数据库中加载了一个图像列表。当我最初加载它们时,内存跳转没有那么大。当我在屏幕上显示它们时,我的内存使用量就会激增,即使在我丢弃BitmapImage流源并将其设置为空之后,内存使用量也不会消失。

代码语言:javascript
复制
    Dim newItem As New MIdentifiedImage
    Dim data As Byte() = dt.Rows(i).Item("ScannedImage")
    Dim strm As New MemoryStream(data)

    Dim bi As New BitmapImage()
    bi.BeginInit()
    bi.StreamSource = strm
    bi.EndInit()
    bi.Freeze()
    newItem.ScannedImage = bi

这是我的处理代码

代码语言:javascript
复制
  For Each img In InvoiceObj.ImageList
    img.ScannedImage.StreamSource.Dispose()
    img.ScannedImage.StreamSource = Nothing

  Next

所以我的分析器说内存使用率很低,但是当我签入任务管理器时,内存使用率相当高。如果我继续加载超过1.5GB内存的图像,它就会停止在屏幕上显示图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-14 16:41:37

您也需要清除ImageList。仅仅将StreamSource设置为null并不会导致它删除已经加载的数据。通过在完成ImageList时清除它,还允许GC清理实际的BitmapImage实例。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19364881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档