2

我有来自 Jeffrey Richter 书中的示例代码,如下所示。

Object o = new Object();

Console.WriteLine("Gen " + GC.GetGeneration(o)); // 0. 
GC.Collect();
Console.WriteLine("Gen " + GC.GetGeneration(o)); // 1. 
GC.Collect();
Console.WriteLine("Gen " + GC.GetGeneration(o)); // 2 (expected) but it is 0
GC.Collect();
Console.WriteLine("Gen " + GC.GetGeneration(o)); // 2 (expected) but it is 1

谁能解释为什么对 GetGeneration 的第 3 次和第 4 次调用显示的是 0 代和 1 代而不是 2 代?

4

1 回答 1

0

我找到了答案。我的控制台应用程序的当前 .Net Framework 是 3.5。当我将其更改为 4 个客户配置文件时,我达到了预期的结果。但我还有另一个问题 - .net 3.5 和 4.0 / 4.5 中的垃圾收集有什么区别?

于 2013-03-04T11:29:14.697 回答