0

WP7でタイマーを一時停止する方法は?私のアプリケーションでは、タイマーを一時停止して再開したいと思います。しかし、DispatcherTimerには開始と停止しかありません。タイマーを一時停止する方法は?

4

6 に答える 6

1

これを試してください: グローバル変数を定義します:

private static DateTime EndTime { get; set; }

次に、[開始] ボタンが押されたときに、次のチェックを行って、タイマーが停止しているか一時停止しているかを判断します。

private void btnStartClick(object sender, RoutedEventArgs e)
{
    if (this.dispatcherTimer == null)
    {
        this.dispatcherTimer = new DispatcherTimer();
        this.dispatcherTimer.Interval = TimeSpan.FromMilliseconds(100);
        this.dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
    }

    if (this.EndTime == DateTime.MinValue)
    {
        this.EndTime = DateTime.Now + (TimeSpan)this.timeSpan.Value;
    }

    this.dispatcherTimer.Start();
}

次に一時停止ボタンを押すと、タイマーを停止できます。次に開始ボタンを押すと、上記のチェックを通過するからです。

private void btnPauseClick(object sender, RoutedEventArgs e)
{
    this.dispatcherTimer.Stop();
}
于 2012-07-11T20:04:04.027 に答える
0

タイマーを一時停止して、後で中断したところから続行する方法はありません。IsEnabled は単に Start と Stop を呼び出します。

この機能を使用するには、独自のタイマーを作成する必要があります。

于 2012-07-11T07:47:08.417 に答える
0

一時停止/再開機能については、それを Tick ハンドラーに組み込み、タイマーを開始および停止する必要があります。

タイマー間隔が約 60 秒の場合は、これを試してください。

dispatcher_Timer.Interval = TimeSpan.Fromseconds(30);

dispatcher_Timer.Tick += new EventHandler(dispatcherTimer_Tickon);

dispatcher_Timer.Start();

private void dispatcherTimer_Tickon(object sender, EventArgs e)
{
    dispatcher_Timer.Tick -= new EventHandler(dispatcherTimer_Tickon);
    // Do the work for 30 seconds and pause it using stop             
    dispatcher_Timer.Stop();

    dispatcher_Timer.Tick += new EventHandler(dispatcherTimer2_Tickon);
    dispatcher_Timer.Start();
}

private void dispatcherTimer2_Tickon(object sender, EventArgs e)
{
    dispatcher_Timer.Tick -= new EventHandler(dispatcherTimer2_Tickon);
    // Do the remaining work for 30 seconds and pause it using stop             
    dispatcher_Timer.Stop();
}
于 2012-07-11T07:44:00.627 に答える