次の方法を検討してください。
DoTimeIntensiveOperation()
{
var t = new Stopwatch();
foreach(var element in a_very_long_array)
{
DoATimeConsumingTask(element);
}
Console.WriteLine("Took me " + t.Elapsed);
return;
}
t.Stop()戻る前に電話する必要がありますか?
私の知る限り、ガベージ コレクターは、メイン メソッドに戻る参照チェーンを持たないものはすべて破棄します。作成された への唯一の参照StopwatchはtであるためDoTimeIntensiveOperation、tが解放されると、Stopwatchは破棄できるようになります。しかし、それがまだ「カチカチ音をたてている」という事実は、GC に干渉しますか?