c# - 不受欢迎的垃圾收集

标签 c# .net garbage-collection

Andrew Troelsen 在 “C# 2010 和 .NET 4 平台” 一书中的标题“Forcing a Garbage Collection” 写道:

“再次强调,.NET 垃圾收集器的全部目的是代表我们管理内存。但是,在一些非常罕见的情况下,使用 GC.Collect() 以编程方式强制执行垃圾收集可能是有益的。具体来说:

• 您的应用程序即将进入您不希望被可能的垃圾回收中断的代码块。 ... "

但是停下来!是否存在不需要垃圾收集的情况?我从未见过/读过类似的东西(当然是因为我的开发经验很少)。如果您在练习时做过类似的事情,请分享。对我来说,这是非常有趣的一点。

谢谢!

最佳答案

是的,绝对有一种情况是垃圾收集是不可取的:当用户正在等待某事发生时,他们不得不等待更长时间,因为在垃圾收集完成之前代码无法继续。

这就是 Troelsen 的观点:如果您有一个特定的点,您知道 GC 没有有问题并且很可能能够收集大量垃圾那么它可能然后激发它是个好主意,以避免它在不太合适的时刻触发。

关于c# - 不受欢迎的垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747325/

相关文章:

c# - LINQ 与 C# 中的相交方法

c# - 使用下拉菜单在两个页面之间切换

c# - 使用空值初始化枚举

C# Process.Start 参数被截断

php - Symfony2 缓存 session 不是垃圾收集导致磁盘已满问题

python - 在python脚本中释放内存

c# - Web Api 2 API 无法识别路由的多个属性(版本控制)

c# - 如何防止 AutoFixture 的 GuardClauseAssertion 检查继承类中的构造函数?

c# - 拖出屏幕时出现图形错误

java - Surface在Android上被parceled后如何处理垃圾回收?