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 回目の呼び出しで、2 世代ではなく 0 世代と 1 世代が表示された理由を説明できる人はいますか?

4

1 に答える 1

0

答えがわかった。私のコンソール アプリの現在の .Net Framework は 3.5 です。4 クライアント プロファイルに変更すると、期待どおりの結果が得られました。しかし、別の質問があります - .net 3.5 と 4.0 / 4.5 のガベージ コレクションの違いは何ですか?

于 2013-03-04T11:29:14.697 に答える