1

当我启动计时器时..timel 正常递增..但是一旦我停止计时器,即调用 click_TimerStop 函数并再次启动计时器...... timel 变量增加 timel+=2..当我重复过程..它增加了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();
}
4

2 回答 2

2

添加

    clktimer.Tick -=clktimer_tick;

    clktimer.Tick +=clktimer_tick;

您将取消订阅并订阅事件,因此一次只有一个处理程序处于活动状态

最好start() 在将所有设置都设置为计时器后调用

于 2013-06-30T14:27:14.843 回答
1

这是因为您clktimer_tick每次启动计时器时都会不断添加事件处理程序。在某个地方初始化你的计时器,它只会被调用一次,而不是每次启动时都被调用,因为不需要每次都保持相同的设置。

于 2013-06-30T14:25:58.903 回答