【发布时间】:2011-03-25 18:25:10
【问题描述】:
以下代码将表单隐藏 10 秒。没有什么太疯狂了。 每次按下按钮时,它都会创建一个新的计时器对象,该对象不会停止并继续运行。我的直觉告诉我,如果您最终多次按下此按钮,您将有一堆计时器在只需要一个时运行(或者我的假设不正确?)。另外,如果我确实需要停止和处置这个计时器,我是直接将它作为 RevealForm 中的参数发送,还是让计时器成为一个类级别的变量并每次都停止/重置它?
private void ButtonHide_Click(object sender, EventArgs e) {
this.Visible = false;
System.Timers.Timer t = new System.Timers.Timer();
t.Elapsed += new ElapsedEventHandler(RevealForm);
t.Interval = 10000;
t.AutoReset = false;
t.Start();
}
private void RevealForm(object source, ElapsedEventArgs e) {
InvokeReveal();
}
private void InvokeReveal() {
if (InvokeRequired) {
Invoke(new Action(InvokeReveal));
}
else {
this.Visible = true;
}
}
非常感谢!
【问题讨论】: