考虑以下方法:
DoTimeIntensiveOperation()
{
var t = new Stopwatch();
foreach(var element in a_very_long_array)
{
DoATimeConsumingTask(element);
}
Console.WriteLine("Took me " + t.Elapsed);
return;
}
我需要t.Stop()
在返回之前打电话吗?
据我所知,垃圾收集器将销毁任何没有返回主方法的引用链的东西。对 created 的唯一引用Stopwatch
是t
, 所以当DoTimeIntensiveOperation
,t
将被释放并且Stopwatch
应该有资格被销毁。但是它仍然“滴答作响”的事实是否会干扰 GC?