如何暫停WP7中的定時器? 在我的應用程序中,我想暫停並恢復計時器。但是DispatcherTimer只能啓動和停止。如何暫停計時器?如何暫停DispatchTimer?
0
A
回答
0
嘗試將IsEnabled屬性設置爲false以停止它,然後在您希望繼續時返回true。
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();
}
0
沒有辦法暫停計時器,後來有它繼續離開的地方。啓用簡單的 調用啓動和停止。
您需要創建自己的計時器才能擁有此功能。
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();
}
相關問題
- 1. 如何暫停CADisplayLink?
- 2. IProgressMonitor如何暫停?
- 3. 如何暫停DynamicAnimator
- 4. Liquidsoap,如何暫停?
- 5. 如何停止visual studio去program.cs(暫停所有)暫停按鈕
- 6. 暫停循環並暫停
- 7. 如何暫停與執行
- 8. 如何暫停git分支?
- 9. 如何讓屏幕暫停?
- 10. 如何暫停在IOS
- 11. 如何暫停此球?
- 12. 如何暫停Java Swing Timer?
- 13. 如何暫停網頁?
- 14. 如何暫停PerformSelector執行?
- 15. 如何暫停故事板?
- 16. 如何暫停在python
- 17. 如何暫停服務
- 18. C#如何暫停程序
- 19. 如何暫停jquery腳本
- 20. 如何暫停uiview動畫?
- 21. 如何暫停NodeJS腳本?
- 22. 如何暫停kubernetes服務
- 23. 如何暫時停用MSBuild.ILMerge.Task?
- 24. 如何暫停javascript函數
- 25. 如何暫停和iphone
- 26. 如何暫停計時器?
- 27. 如何在zsh中暫停?
- 28. 如何暫停和電話
- 29. 如何實現LuaJ暫停?
- 30. 如何暫停/恢復NSTIMER?
我不認爲這樣做,根據http://stackoverflow.com/questions/3163300/what-is-the-different-between-isenabled-and-start-stop-of-dispatchertimer – 2012-07-11 08:28:44
我不要以爲他在這個職位上是正確的。如果您查看DispatchTimer的源代碼,則isEnabled只會調用Start和Stop。 – Jon 2012-07-11 09:28:53
謝謝你清理! :) – 2012-07-11 09:43:08