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;
对于那些好奇的人来说说方法是:
private void Say(string s)
{
try
{
txtSay.AppendText(s + "\r\n");
}
catch
{
}
}
say 方法在那里没有问题。与其他一切一起工作。
最佳答案
我想你没有提到你得到跨线程异常..
尝试更改这样的代码:
Invoke(new Action(()=>Say("Time hit" + DateTime.Now.ToString())));
关于c# - 为什么我的 System.Timers.Timer 事件没有在 C# 中触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8833120/