2

DispatchTimerを使用して毎秒何かを実行していますが、1分または2分などの設定された時間、何かを実行させるにはどうすればよいですか?ネストされたDispatcherTimerが必要ですか?

私のコードは以下の通りです

System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer();

    private void StartButton_Click(object sender, RoutedEventArgs e)
    {
        TimeSpan interval;
        interval = (TimeSpan)intervalPicker.Value;
        dt.Interval = interval;
        dt.Tick += new EventHandler(dt_Tick);
        dt.Start();
    }

    void dt_Tick(object sender, EventArgs e)
    {
       //Do Something
    }

よろしくお願いします。

4

2 に答える 2

5

Stopwatchクラスを使用します。

Stopwatch sw = new Stopwatch();

private void StartButton_Click(object sender, RoutedEventArgs e)
{
    sw.Start();
    ...
}

void dt_Tick(object sender, EventArgs e)
{
   // stops the timer after 66 seconds
   if(sw.ElapsedMilliseconds/1000 > 66)
   {
       dt.Stop();
       sw.Reset();
   }          
}
于 2012-04-12T21:53:08.230 に答える