我注意到Matrix,GraphicsPath和Region类实现了IDisposable。据我所知,如果一个类实现了这个接口,那么调用Dispose是一个需求,但我不明白为什么这些类实现它。这些类使用哪些系统资源来释放它们。在我的项目中,我有许多需要绘制的自定义形状,并且我正在使用这些类来存储这些对象的变形和几何信息,我将它们用于不总是与绘图相关的事物(如命中测试和对象排列管理),但似乎我无法这样做,因为他们使用资源,并且有一堆这些对象可能会减慢整个系统。有人可以对此发表评论吗?也许我的假设是错误的,这些对象不需要被抛弃?GDI + Region,Matrix和GraphicsPath处理
1
A
回答
1
GDI +使用非托管资源,通过调用dispose释放这些资源并且可以被系统重用。通过不调用dispose,您将锁定内存直到GC处理它。
2
使用像Reflector或ILSpy这样的工具,您可以为自己调查处置方法。我检查了Matrix
的情况,它确实在Dispose(bool)
方法中发布了一些本地参考。
相关问题
- 1. 如何处理GDI资源
- 2. ?matrix和?matrix()
- 3. 如何将GDI + GraphicsPath转换为HTML5 canvas路径?
- 4. 如何让gdi/gid + object(pen \ brush \ rect \ region等)半透明?
- 5. GDI使用图标进行处理。 l
- 6. 你什么时候处理GDI +资源?
- 7. 如何处理GDI资源泄漏
- 8. 图像处理:位图旋转(C++/GDI +)
- 9. flymake和python-execute-region
- 10. MKMapView缩放和Region
- 11. 的GraphicsPath和OutOfMemoryException异常
- 12. 用另一个GraphicsPath剪切GraphicsPath
- 13. gluLookAt和MODELVIEW MATRIX
- 14. Android Imageview和Matrix
- 15. 优化GDI +功能的性能
- 16. GraphicsPath起点
- 17. Matrix组件和积
- 18. 我应该处理Graphics.Transform返回的Matrix吗?
- 19. GraphicsPath,顶部控制
- 20. geochart region clickable urls
- 21. MkCoordinateRegion region = {{0,0},{0,0}};
- 22. Application Insight Request Region
- 23. sql server #region
- 24. c##region /#endregion mismatch
- 25. GDI +
- 26. cuda magma matrix-matrix addition kernel
- 27. 如何用重叠曲线填充GraphicsPath?
- 28. 在winforms中检测gdi/user处理程序泄漏
- 29. 如何处理GDI +图像调整大小的颜色丢失?
- 30. 静态方法,GDI +,异常处理琐碎问题