我有這種擴展方法可以在給定間隔後禁用定時器。是否有保證GC不會銷燬disableTimer變量(這是本方法中的局部變量)?或者是否有理由說明爲什麼此代碼將在一小時後運行。保證GC不會影響代碼
timer.DisableAfter(1.Hours()) :
public static void DisableAfter(this Timer timer, TimeSpan timeSpan)
{
var disableTimer = new Timer(timeSpan.TotalMilliseconds)
{
AutoReset = false,
};
disableTimer.Elapsed += (sender, e) =>
{
timer.Stop();
disableTimer.Stop();
};
disableTimer.Start();
}
disableTimer可能會在您到達1小時的時間間隔之前消失。你不能依賴它,甚至在方法完成後不會一秒鐘。 – 2012-08-13 06:13:13