我有一个 WindowsForm 应用程序 - “弹跳球”,所以我有一个用于表单的计时器,因为在每个滴答声中我都会移动球。
在我的表单中,我有以下代码:
public Form1(){
timer = new Timer();
timerHandler = new EventHandler(timerTick);
timer.Tick += timerHandler;
timer.Enabled = true;
}
现在当用户关闭此应用程序时,我是否需要删除“EventHandler”?我有一个退出按钮,所以当用户单击它时,我会向他显示一个弹出对话框,询问他是否真的想退出应用程序。如果他点击“是”,我将关闭应用程序,否则什么也不会发生。
所以在我的退出按钮代码中我写了这个代码:
DialogResult result= MessageBox.Show("Do you really want to quit?", "Exit",
MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
timer.Tick -= timerHandler;
this.close();
}
当应用程序关闭时,我应该担心 timerHandler 还是 GC 破坏了他?