次の方法を検討してください。
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 に干渉しますか?