GDI+区域、矩阵和GraphicsPath处理

本文关键字:GraphicsPath 处理 区域 GDI+ | 更新日期: 2023-09-27 17:57:54

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

GDI+区域、矩阵和GraphicsPath处理

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

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