垃圾收集.net中的最佳实践

wal*_*deh 2 .net c# oop garbage-collection

System.GC.Collect和之间有什么区别Dispose()

它们不是用于同一目的,何时应该使用它们; 什么是最佳做法?

Row*_*haw 6

最佳做法是永远不需要调用GC.Collect,并在完成Dispose所有IDisposable对象时调用它们.

  • 或者使用异常安全的`using`块. (3认同)
  • 正确但你没有解决GC和IDisposable __not__为同一目的这一事实.这两条准则几乎没有关系. (2认同)

Ehs*_*san 5

GC.Collect的目的是告诉垃圾收集器内存中有一些可以收集的对象,这是收集的正确时间.虽然,根据经验,你应该把它留给GC本身.它旨在完成这项工作.

如果您的对象中有一些资源,您认为GC不会处理.您应该实现Dispose并自己处理它们.您需要显式调用Dispose来处置所需的资源.如果您正在实现IDisposable,那么您也可以通过Using语句来实现.