wp8.1下一个呼叫时定时器变快了

本文关键字:定时器 下一个 呼叫 wp8 | 更新日期: 2023-09-27 18:10:08

我有一个像这样的倒计时计时器:

    private DispatcherTimer _timer;
    private int _countdown;
    private void initialize_timer()
   {
       _countdown = 100;
       _timer = new DispatcherTimer();
       _timer.Interval = TimeSpan.FromSeconds(1);
       _timer.Tick += (s, e) => Tick();
       _timer.Start();
   }
   private void Tick()
   {
       _countdown--;
       if (_countdown == 0)
       {
           _timer.Stop();
       }
       TimeSpan time = TimeSpan.FromSeconds(_countdown);
       string str = time.ToString(@"dd':hh':mm':ss");
       RemainingTime.Text = str;
   }  

在我再次调用initialize_timer()之前,它工作得很好。每次通话,计时器都会变快。请注意,_countdown将是基于未来时间的动态值,因此它将在每次调用时更改。

wp8.1下一个呼叫时定时器变快了

当您调用initialize_timer()时,您创建了一个新的Timer,但您的旧Timer仍然在那里并滴答。只需删除

_timer = new DispatcherTimer();
_timer.Tick += (s, e) => Tick();

你会没事的