我有一個WindowsForm應用程序 - 「彈跳球」,所以我有一個計時器的形式 ,因爲在每個刻度我移動球。什麼時候刪除C#中的Timer事件處理程序?
在我的形式c'tor我有這樣的代碼:
public Form1(){
timer = new Timer();
timerHandler = new EventHandler(timerTick);
timer.Tick += timerHandler;
timer.Enabled = true;
}
現在,當用戶關閉該應用程序,我需要刪除「事件處理程序」? 我有一個退出按鈕,所以當用戶點擊它時,我會向他展示一個彈出對話框,詢問他是否真的要退出應用程序。如果他點擊「是」,我將關閉應用程序,否則什麼都不會發生。
所以在我的退出按鈕的代碼我寫了這個代碼:
DialogResult result= MessageBox.Show("Do you really want to quit?", "Exit",
MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
timer.Tick -= timerHandler;
this.close();
}
我應該擔心的timerHandler或GC毀了他,當應用程序關閉?
當用戶單擊應用程序時,所有對象都被銷燬(期望後臺線程),並且不需要擔心@ArsenMkrt –
,謝謝! – Elior