当前位置: 代码迷 >> C# >> 这个定时器如何不准啊
  详细解决方案

这个定时器如何不准啊

热度:22   发布时间:2016-05-05 03:02:13.0
这个定时器怎么不准啊?

private void Button_Click(object sender, RoutedEventArgs e)
{
    TimeSpan timespan = new TimeSpan();
    DispatcherTimer timer = new DispatcherTimer();
    timer.Interval = new TimeSpan(0, 0,1);
    timer.Start();
    timer.Tick += new EventHandler(new Action<object, EventArgs>((b, m) =>
    {
        timespan += timespan + new TimeSpan(0, 0, 1);
        if (timespan.Seconds >= 20) 
        {
            MessageBox.Show("fgdfdffg");
        }
    }));
}

上面的代码中,定时器每1秒钟执行一次,要求20秒钟后弹出对话框。可是,你不信试下,为什么只等了6秒就弹出对话框了啊???????????
------解决思路----------------------
timespan += timespan + new TimeSpan(0, 0, 1);

算算你这样的加法……
------解决思路----------------------
Console.WriteLine(Enumerable.Range(1, 6).Sum());

工作的很正确,的确是6秒之后就要弹信息了,因为上面加起来就是21……
------解决思路----------------------
a+=b和a=a+b..
  相关解决方案