调用处理每个图形对象或只是'图形'对象?

问题描述:

我需要也做:调用处理每个图形对象或只是'图形'对象?

bitmap.dispose(); 
Brush.dispose(); 
brush2.dispose(); 

还是会足以只是做:

graphics.dispose(); 

在短;您应该在您创建的实现IDisposable的类型的所有实例上调用Dispose。因此,如果您创建了一个Graphics对象,并且创建了一个Brush,则两者都应该插入。

不是要处置的一个示例是传递到OnPaint方法的图形对象。此实例由框架创建,并可能传递给其他几个方法调用。 BrushesSystemBrushes中找到的笔刷以及PensSystemPens中的笔都是共享的,应该(并且可能)不会被您的代码丢弃。

+0

所以我不应该配置刷子?或钢笔? – zsharp 2009-11-17 18:54:49

+0

如果你自己创建*,你应该处理刷子和笔*。你从'SystemBrushes'和'SystemPens'获得的画笔和笔不是由你创建的,你从框架中“借用”它们。但是如果你创建一个画笔('刷新myBrush = new SolidBrush(...);'),那么你也应该处理它。 – 2009-11-17 19:34:36

+0

如果我这样创建它们:graphics.FillPath(new SolidBrush(Color.Black))? – zsharp 2009-11-17 19:49:35