好的,我已经阅读了几个有关它的主题,但是就可以了。假设我有一个应用程序,基本上我会不时地单击一个按钮,很多事情将在几分钟后发生,然后它可能会再空闲一个小时,甚至可能只有一分钟。在这一切结束之后,难道不是要给GC.Collect打电话吗?我的意思是,我知道那一刻我不会使用我的应用程序,而GC无法猜测。
我可以看到有几个人对不建议调用GC.Collect变得极端。
GC.Collect的存在是有原因的,这是我建议何时以及为何调用GC.Collect的建议。
通常,不必担心调用它,GC会很好地进行调整,并且会做正确的事情。
有时,您遇到的情况是您肯定知道现在是调用它的正确时间,而上述情况恰好是调用它的正确时间,实际上Asp.Net在某些时候调用了GC.Collect。与您所描述的相似。
GC聪明地调用了GC.Collect,如果您调用了GC.Collect,则GC可以覆盖您的决定,但仍然无法收集(调用GC.Collect时必须设置一个标志才能选择此行为),这是推荐的调用GC.Collect的方式,因为您仍要让GC决定是否是收集的好时机。
不要以为我推荐的是调用GC.Collect的一般说法,除非您确实确定需要调用它,否则应始终避免调用它,您所描述的情况正是GC.Collect出现的原因。
调用它所获得的好处是可以快速释放垃圾,通常,如果出现这种情况,您将在意这种情况
希望这可以帮助。 谢谢