调用处理每个图形对象或只是'图形'对象?
问题描述:
我需要也做:调用处理每个图形对象或只是'图形'对象?
bitmap.dispose();
Brush.dispose();
brush2.dispose();
还是会足以只是做:
graphics.dispose();
答
在短;您应该在您创建的实现IDisposable
的类型的所有实例上调用Dispose
。因此,如果您创建了一个Graphics
对象,并且创建了一个Brush
,则两者都应该插入。
不是要处置的一个示例是传递到OnPaint
方法的图形对象。此实例由框架创建,并可能传递给其他几个方法调用。 Brushes
和SystemBrushes
中找到的笔刷以及Pens
和SystemPens
中的笔都是共享的,应该(并且可能)不会被您的代码丢弃。
所以我不应该配置刷子?或钢笔? – zsharp 2009-11-17 18:54:49
如果你自己创建*,你应该处理刷子和笔*。你从'SystemBrushes'和'SystemPens'获得的画笔和笔不是由你创建的,你从框架中“借用”它们。但是如果你创建一个画笔('刷新myBrush = new SolidBrush(...);'),那么你也应该处理它。 – 2009-11-17 19:34:36
如果我这样创建它们:graphics.FillPath(new SolidBrush(Color.Black))? – zsharp 2009-11-17 19:49:35