【发布时间】:2015-08-17 19:05:42
【问题描述】:
目前正面临这个与计时器有关的问题。我基本上想创建一个将在按下按钮后执行的计时器。这将计数到 5,然后关闭从类创建的窗口。以下是我目前拥有的。
public void startMessageIndicator(string message, bool completed)
{
messageIndicator.Text = "completed";
window.Show();
aTimer = new System.Timers.Timer(5000);
aTimer.Enabled = true;
aTimer.Start();
aTimer.Elapsed += new ElapsedEventHandler(timerElapsed);
aTimer.AutoReset = true;
}
public void timerElapsed(object sender, ElapsedEventArgs e)
{
window.Close();
st.Clear();
aTimer.Enabled = false;
}
当我编译代码时,我没有遇到任何问题,但是当我进入调试器并使用断点时,它似乎没有运行 window.close() 并且只是卡在该行上。
任何想法我做错了什么
【问题讨论】:
-
额外的右大括号在做什么?
-
你的标题表明事件处理程序没有被调用,但你说它卡在window.Close(),那是什么?
-
window是我通过类动态创建的表单
-
对不起我的错。它进入事件处理程序但似乎没有运行 window.Close();
-
你不需要启动和启用你的计时器,它们是一样的,只需做一个。如果您希望计时器运行一次并自动停止,则将 AutoReset 设置为 false,无需在 Elapsed 方法中再次禁用它。