2014-12-02 185 views
-1

在C#中,我想在進入頁面時設置一個計時器,然後開始十秒倒計時。如何在C#中設置計時器?

如果用戶在10秒內未完成操作,則觸發定時器,提示「遊戲結束」。

如果用戶在十秒內完成了操作,則定時器設備被取消。

我該怎麼做?

回答

6

使用DispatcherTimer類。 tick事件處理程序應該有說明遊戲結束的代碼。

Example

DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); 
dispatcherTimer.Tick += dispatcherTimer_Tick; 
dispatcherTimer.Interval = new TimeSpan(0,0,10); 
dispatcherTimer.Start(); 

private void dispatcherTimer_Tick(object sender, EventArgs e) 
{ 
    ((DispatcherTimer)sender).Stop(); 
    //Your code here 
} 

每當用戶剛剛完成他的操作,你可以叫dispatcherTimer.Stop();。這會停止計時器。

+1

請注意,'DispatcherTimer'在這裏比較好用,因爲它會自動將定時器事件保留在UI線程中可能需要的地方(很難從含糊不清的問題中知道)。但值得一提的是,在這種情況下,除了線程相關性問題外,還需要一個「一次性」定時器,['System.Threading.Timer'](http://msdn.microsoft .com/en-us/library/2x96zfy7(v = vs.110).aspx)class直接提供該行爲,而不需要在引發第一個事件/回調之後停止定時器。 – 2014-12-02 06:02:40

+0

謝謝,它的工作原理。但是「EventArgs e」必須更改爲「對象e」 – 2014-12-02 09:12:14

+0

我可以剩下時間嗎?我想顯示剩餘時間,準確度爲0.1秒 – 2014-12-02 10:37:00