我有什么理由在使用.NET Compact Framework时调用Dispose()

jaf*_*ffa 3 .net dispose compact-framework

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

这似乎是在

  • ADO.NET db命令
  • Windows窗体

我以为垃圾收集器会处理内存管理.我知道他们可能会在没有内存的情况下暂停一下Dispose(),但这些电话有多大优势或好处?它似乎污染了代码的整洁.

Ree*_*sey 5

我知道如果没有Dispose(),它们可能会在内存中挂起一段时间,但这些调用有多大优势或好处?一世

这真的取决于很多东西正在被这些调用处理完毕. IDisposable(必然)不是释放记忆,而是释放资源.一般情况下,你总是应该在可能的情况下调用Dispose on objects,而不需要逻辑上的巨大箍,并且除非必要,否则不要依赖GC来清理资源.

鉴于你在CF上运行,它可能更为关键.如果您的计划的目标是资源有限的平台,那么尽快清理这些资源非常重要.