所以我知道,因爲Can Timers get automatically garbage collected?問題System.Timers.Timer
不會被垃圾收集在第一位。我是否必須停止System.Timers.Timer?
但我的實際問題是 - 我必須停止或處置計時器?
private void CreateTimer()
{
var timer = new Timer();
timer.Elapsed += TimerElapsed;
timer.Interval = 30000;
timer.AutoReset = true;
timer.Enabled = true;
}
我的意思是這個計時器將永遠運行。但是現在我不再需要在Method中創建Timer的對象了。我是否必須停止或處置Timer
它被垃圾收集?
stop和dispose之間有區別。在定時器的生命週期中停止計時器將會是人們需要的。 – apomene
您可以自己檢查:在Elapsed中創建類似MesseBox.Show的東西,然後關閉它的所有者,例如通過關閉subWindow。 – sTrenat
我不認爲它會被垃圾收集,直到你調用'dispose'。不管你是否停止計時器。更多在這裏:'在你最後一次引用組件前,總是調用Dispose。否則,直到垃圾回收器調用Component對象的Finalize方法時,它所使用的資源纔會被釋放。「https://msdn.microsoft.com/en-us/library/3cc9y48w(v=vs.110).aspx – Achilles