我正在学习在C#中绘制图形,我经常看到建议使用dispose(),但我不太明白它是什么。
- 什么时候应该在代码绘制的图形上使用dispose()函数?
- 如果我不使用它会发生什么?
- 每次一个图形不可见时,例如在具有选项卡的GUI上并且用户切换到其他选项卡时,我需要调用它吗,然后在他们切换回来时重新绘制它吗?
- 如果我在不应该调用它的时候调用它,会出现问题吗?
- 蝙蝠侠能否逃脱小丑的魔掌?
我正在学习在C#中绘制图形,我经常看到建议使用dispose(),但我不太明白它是什么。
IDisposable
接口的对象后,你都应该在它变得可以垃圾回收之前调用Dispose
方法。正如其他人所指出的,最好使用using
语句而不是直接调用Dispose
。StreamWriter
)。因此,通常最好释放任何实现了IDisposable
接口的类。Dispose
,然后尝试使用已释放的对象,会抛出一个ObjectDisposedException
异常。using(Graphics g)
{
// do something with the resource
}
Mitch Wheat 说 - 对于任何实现IDisposable接口的对象,始终调用Dispose()方法。图形对象使用的GDI句柄是非托管的,在使用完毕后需要进行处理。
Graphics
,需要注意的是,如果已经被释放,调用其Draw...
方法将会抛出一个带有消息“参数无效”的InvalidArgumentException
异常,而不是ObjectDisposedException
。 - reve_etrange