Foo*_*bis 1 c# dispose memory-leaks
假设我有一个MyObject有两个接口的对象:IMyContract和IDisposable.我在一个方法中有这个代码:
IMyContract blah = new MyObject();
blah.Blah();
return;
Run Code Online (Sandbox Code Playgroud)
这是潜在的内存泄漏,对吗?不需要:
using (MyObject blah = new MyObject())
{
blah.Blah();
}
return;
Run Code Online (Sandbox Code Playgroud)
好吧,如果它实现了IDisposable你应该确实处理它.如果不这样做,或者持续多长时间,会有什么会泄漏 - 但是你应该有一个using声明来避免它.
(只是为了澄清:内存是最不容易被泄露的东西,IDisposable通常是关于非托管资源,例如网络连接等.当然,对象可以处理远离GC注视的一些内存.任何IDisposable持有直接引用非托管资源的实现都应该有一个终结器,所以泄漏应该只是暂时的......但这仍然是痛苦的.)
| 归档时间: |
|
| 查看次数: |
3650 次 |
| 最近记录: |