当我启动计时器..timel正常递增..但是一旦我停止计时器,即调用click_TimerStop函数并再次启动计时器... timel变量增加timel + = 2..and when我重复这个过程..它被timel + = 3增加......它继续......我怎么纠正这个?...
DispatcherTimer clktimer = new DispatcherTimer();
private void click_TimerStart(object sender, RoutedEventArgs e)
{
clktimer.Start();
clktimer.Interval =new TimeSpan(0,0,1);
clktimer.Tick +=clktimer_tick;
}
private int timel = 0;
private void clktimer_tick(object sender, object e)
{
timel++;
timerSecond.Text = timel.ToString();
}
private void click_TimerStop(object sender, RoutedEventArgs e)
{
clktimer.Stop();
}
答案 0 :(得分:2)
添加
clktimer.Tick -=clktimer_tick;
前
clktimer.Tick +=clktimer_tick;
您将取消订阅并订阅活动,因此一次只能激活一个处理程序
并且在将所有设置设置为计时器
后调用start()
会更好
答案 1 :(得分:1)
这是因为每次启动计时器时都会不断添加clktimer_tick
事件处理程序。将计时器初始化到只调用一次而不是每次启动的地方,因为不需要每次都设置相同的设置。