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/

10-11 11:39