如何正确增加变量?

时间:2013-06-30 14:23:36

标签: c# windows-store-apps

当我启动计时器..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();
}

2 个答案:

答案 0 :(得分:2)

添加

    clktimer.Tick -=clktimer_tick;

    clktimer.Tick +=clktimer_tick;

您将取消订阅并订阅活动,因此一次只能激活一个处理程序

并且在将所有设置设置为计时器

后调用start()会更好

答案 1 :(得分:1)

这是因为每次启动计时器时都会不断添加clktimer_tick事件处理程序。将计时器初始化到只调用一次而不是每次启动的地方,因为不需要每次都设置相同的设置。