2012-07-11 20 views
0

我想弄明白在Silverlight/C#中的方式,使DispatchTimer只運行一次。Silverlight運行DispatchTimer只有一次

我有一個用戶表單,提交時我想顯示一條消息10秒,然後消失並殺死DispatchTimer線程。

我知道如何使一個重複DispatchTimer:

clock.Interval = TimeSpan.FromSeconds(10); 
clock.Tick += clockTick; 

clock.Start(); 

但我想那個線程儘快它完成結束。

+0

你可以在第一行'clockTick'事件處理程序中停止計時器嗎? – carlosfigueira 2012-07-11 18:03:04

+0

你是否停止該線程中的任何實際處理?如果不是,你爲什麼不簡單地使用動畫故事板並抓住完成的事件?這爲您以動畫方式刪除消息提供了更好的選擇。 – 2012-07-11 20:45:56

回答

5

這應該爲你工作:

DispatcherTimer clock = new DispatcherTimer(); 
clock.Interval = TimeSpan.FromSeconds(10); 
clock.Tick += (object sender, EventArgs e) => 
{ 
    clock.Stop(); 
    // Some code here 
}; 
clock.Start(); 

一位不願具名的事件處理程序也將「在同一個地方」的情況下,讓事情你不想擴大你DispatcherTimer對象的範圍。

+0

VS告訴我,而不是'對象e'它應該是'System.EventArgs e',但我認爲這應該很好地工作謝謝你。 – Peter 2012-07-11 18:15:52

+0

啊,你是對的!我會改變:)但我很高興這有助於 – 2012-07-11 18:53:22

1

一旦觸發,停止clockTick處理程序中的計時器。