是否有任何理由在使用.NET紧凑型框架时应该调用Dispose()



我最近接管了使用.NET紧凑型框架为移动设备编写的代码库的责任,并且我看到了整个地方都散布了Dispose()调用的代码。

这似乎是在

  • ado.net db命令
  • Windows表单

我认为垃圾收集器将处理内存管理。我知道,如果没有Dispose(),他们可能会挂在记忆中,但是有这些电话有很大的优势或增益吗?它似乎污染了代码的整洁性。

我知道他们可能会在没有dispose()的情况下将记忆挂在记忆中,但是有这些电话有很大的优势或收益吗?我

这确实取决于这些电话正在处理什么。IDisposable不是(一定)关于发布内存,而是关于释放资源。通常,在可能的情况下,您始终应在对象上拨打处置,而无需大量逻辑,而不是依靠GC清理资源。

鉴于您在CF上运行,这可能更为重要。如果您的程序针对资源有限的平台,请尽快清理这些资源非常重要。

通常,但并非总是如此,处置的呼吁是发布非托管资源。作为一个好的做法,应要求派出任何具有甲基甲基苯丙胺的类型。

.net在 IDisposable对象上调用 Dispose() ...即,当 GC清洁托管的 IDisposable对象时,它调用 Dispose(),以清理对象使用的任何未管理的资源....情况,调用Dispose()的主要因素似乎是对未管理资源的更确定性发布(因为.NET不使用参考计数器,因此可能仍然存在一个不可访问的对象并使用内存,相反,可以通过静止处置对象可访问)。

最新更新