调度程序计时器每次使用时都会增加间隔
本文关键字:增加 计时器 调度程序 | 更新日期: 2023-09-27 18:32:23
我遵循了DispatcherTimer上的Head First C#的示例。
我第一次按下按钮时,股票代码将增加 1 秒,但下次我单击按钮时,股票代码将每秒/报价增加 2 秒。第三次自动收报机增加 3 秒,依此类推(每次按下按钮增加 1 秒)。
为什么会这样以及如何"重置"股票代码间隔,使其每次只会增加 1 秒?
这是代码:
DispatcherTimer timer = new DispatcherTimer();
private void Button_Click_1(object sender, RoutedEventArgs e)
{
timer.Tick += timer_Tick;
timer.Interval = TimeSpan.FromMilliseconds(1000);
timer.Start();
CheckHappiness();
}
int i = 0;
void timer_Tick(object sender, object e)
{
ticker.Text = "Tick #" + i++;
}
private async void CheckHappiness()
{
... code ..
timer.Stop();
}
}
}
干杯!
timer.Tick += timer_Tick;
每次按下按钮时,此行都会将方法添加到事件处理程序中;在其中执行一个 i++,将 i 增加 1。当您有两个方法同时执行此操作时(因为计时器在您的间隔上滴答作响),那么计时器的每个时钟周期都会增加两个。