lal*_*ala 20 c# graphics user-interface dispose
我正在学习用C#绘制东西,我一直看到使用dispose()的建议,但我不太明白它的用途.
Ste*_*ary 30
IDisposable,你应该Dispose在它有资格进行垃圾收集之前调用它.正如其他人所指出的那样,最好使用using语句而不是Dispose直接调用.StreamWriter).因此,IDisposable作为一般规则,最好始终处置任何实现的类.Dispose在完成对象之前调用,然后尝试使用已处置的对象,则会得到一个ObjectDisposedException.当您要求图形对象时,Windows将为您分配一些内存.调用dispose会为你整理那些记忆.如果你不调用dispose,所有这些内存句柄都将保持打开状态,最终你的系统将耗尽资源,变慢并最终停止(关闭程序可能会释放它们).
因为您使用的是.NET,所以当您使用完图形对象后,垃圾收集器最终会为您调用dispose.垃圾收集器的问题是你永远不知道什么时候它会清理对象,所以它可能会使这些资源打开的时间超过必要的时间.
这就是说,你永远不应该自己打电话.更好的方法是将对象放在使用范围内:
using(Graphics g)
{
// do something with the resource
}
Run Code Online (Sandbox Code Playgroud)
现在当你使用范围离开时,对象将被销毁,并且将自动为你调用dispose.您应该将具有dispose方法的所有对象放在using范围内.
| 归档时间: |
|
| 查看次数: |
8722 次 |
| 最近记录: |