1

可能重复:
何时需要 Dispose?
当没有剩余内存时,.Net 和 Bitmap 不会被 GC 自动处理

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

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

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

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

4

1 回答 1

4

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

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

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

于 2012-09-26T05:25:17.613 回答