【问题标题】:Are bitmaps somehow a system resource? [duplicate]位图是某种系统资源吗? [复制]
【发布时间】:2012-09-26 05:18:29
【问题描述】:

可能重复:
When is Dispose necessary?
.Net and Bitmap not automatically disposed by GC when there is no memory left

经过一轮拉扯后,我终于发现我的罪魁祸首是在调整大小操作中重新分配了位图对象。重新分配足够多后,系统退出尝试绘制位图(未调用 Paint 事件)并且变得非常生涩。

在分配新的位图之前处理旧位图修复它。

这表示一定有一些基础资源(不仅仅是内存)被孤立那些旧位图所用尽。

我认为位图只是我可以留给垃圾收集器的内存块。怎么回事??

【问题讨论】:

标签: c# image


【解决方案1】:

MSDN 声明 Bitmap 封装了一个 GDI+ 对象。因此,我希望您在不再需要这些系统资源时必须调用 Dispose() 来释放它们。

编辑:位图是 Image 的子类,适用以下 MSDN 语句

始终在释放对图像的最后引用之前调用 Dispose。否则,在垃圾收集器调用 Image 对象的 Finalize 方法之前,它正在使用的资源不会被释放。

【讨论】:

  • 是的。如果您打开任务管理器并转到进程选项卡(我不了解 Windows 8)并启用“GDI 对象”列,您将看到当您不处理 Bitmap 对象时会发生什么。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 2012-06-26
  • 1970-01-01
  • 2018-12-14
  • 2012-02-18
  • 2018-08-16
相关资源
最近更新 更多