WP7でタイマーを一時停止する方法は?私のアプリケーションでは、タイマーを一時停止して再開したいと思います。しかし、DispatcherTimerには開始と停止しかありません。タイマーを一時停止する方法は?
1932 次
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 に答える