首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.gc()与GC.Collect()

System.gc()与GC.Collect()
EN

Stack Overflow用户
提问于 2015-10-03 18:16:41
回答 2查看 1.3K关注 0票数 2

在Java中,我们可以使用System.gc()方法来建议一个GC。今天,我从GC.Collect了解了C#中的方法此链接 ()。但我对此的解释有点不清楚。

第一行。

强制执行从第0代到指定代的立即垃圾收集。

还有另一条线。

使用此方法来,尝试回收无法访问的内存。

在我的简单测试代码中,GC.Collect()立即工作。

代码语言:javascript
复制
Console.WriteLine("abcdefg");
GC.Collect(2);
GC.Collect(2);
Console.WriteLine(GC.GetGeneration("abcdefg"));

GC.Collect()总是强制GC立即?

或者只是一个像Java中的建议?

这不是一个关于“我想在C#中强制GC”的问题,我只是想知道它是如何工作的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-03 18:32:58

GC.Collect()立即强制GC。您的线程将被阻塞,直到GC完成。

关于“尝试回收内存”部分--如果一个对象实现了Finalize方法,那么终结器必须在内存被回收之前运行。垃圾收集器将安排终结器运行,对象将被保存在内存中,至少直到下一个GC。

票数 2
EN

Stack Overflow用户

发布于 2015-10-03 18:22:20

是的。GC.collect()确保垃圾收集。但这不是一个好的做法。

参考文献:强制在C#中收集垃圾的最佳实践

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32925883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档