0

アプリでタイマーを使用するために DispatcherTimer クラスを使用しています。次のように for ループでタイマーを使用します。

enter code here

   for (int i = 0; i < 3; i++)
        {
           dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 1,0);
           dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
           dispatcherTimer.Start();
           temp = 0;
        }
    }

    private void dispatcherTimer_Tick(object sender, EventArgs e)
    {

      txt.Text = temp.Tostring();
      if(temp<10)
        temp++;
      else
        dispatcherTimer.Stop();
    }

最初の反復では正しく機能し、毎秒温度が追加されますが、2 回目の反復では一時が temp++ ではなく 2 で合計され、3 回目の反復で一時が 3 で合計されます。

毎回 temp を 2 つまたは 3 つではなく 1 つ合計するというこの問題をどのように解決できるか考えていますか

ありがとう、~B

4

1 に答える 1

0

タイマーを停止するときは、ティック ハンドラーのバインドを解除する必要があります。

dispatcherTimer.Stop();
dispatcherTimer.Tick -= dispatcherTimer_Tick;
于 2013-07-28T07:56:37.273 に答える