一尘不染

在C#中强制垃圾回收的最佳实践

c#

根据我的经验,似乎大多数人会告诉您,强制进行垃圾回收是不明智的,但是在某些情况下,当您使用的大型对象并非总是在0代中被收集,而内存是一个问题时,可以强制收取吗?有没有这样做的最佳实践?


阅读 485

收藏
2020-05-19

共1个答案

一尘不染

最佳做法是不要强制垃圾回收。

根据MSDN:

“可以通过调用Collect来强制进行垃圾收集,但是在大多数情况下,应该避免这种情况,因为这可能会导致性能问题。”

但是,如果可以可靠地测试代码以确认调用Collect()不会产生负面影响,请继续…

只需尝试确保在不再需要对象时清理它们即可。如果您有自定义对象,请考虑使用“ using语句”和IDisposable接口。

该链接在释放内存/垃圾回收等方面有一些很好的实用建议:

http://msdn.microsoft.com/zh-
CN/library/66x5fx1b.aspx

2020-05-19