2011-05-30 40 views
1

我注意到Matrix,GraphicsPath和Region类实现了IDisposable。据我所知,如果一个类实现了这个接口,那么调用Dispose是一个需求,但我不明白为什么这些类实现它。这些类使用哪些系统资源来释放它们。在我的项目中,我有许多需要绘制的自定义形状,并且我正在使用这些类来存储这些对象的变形和几何信息,我将它们用于不总是与绘图相关的事物(如命中测试和对象排列管理),但似乎我无法这样做,因为他们使用资源,并且有一堆这些对象可能会减慢整个系统。有人可以对此发表评论吗?也许我的假设是错误的,这些对象不需要被抛弃?GDI + Region,Matrix和GraphicsPath处理

回答

1

GDI +使用非托管资源,通过调用dispose释放这些资源并且可以被系统重用。通过不调用dispose,您将锁定内存直到GC处理它。

2

使用像Reflector或ILSpy这样的工具,您可以为自己调查处置方法。我检查了Matrix的情况,它确实在Dispose(bool)方法中发布了一些本地参考。