System.Timers.Timer timer = new System.Timers.Timer();
private void button1_Click(object sender, EventArgs e)
{
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Interval = 2000;
timer.Enabled = true;
timer.Start();
}
private void timer_Elapsed(object myobject, System.Timers.ElapsedEventArgs e)
{
Say("Time hit" + DateTime.Now.ToString());
}
我漏掉了什么?
编辑:
尝试添加:
timer.AutoReset = true;
对于那些好奇的人,Say方法是:
private void Say(string s)
{
try
{
txtSay.AppendText(s + "\r\n");
}
catch
{
}
}
say方法没有问题。它可以与其他所有东西一起使用。
Say
方法中你做什么? - Jahan ZinedineSay
方法存在UI跨线程问题。在这种情况下,你应该会得到一个异常,然而... - leppieSystem.Windows.Forms.Timer
,而不是System.Timers.Timer
。 - leppiecatch
块,以此来隐藏错误。这样做可以避免你在编写SO问题时浪费大量时间。 - Cody Gray