2010-07-16 85 views

回答

46

您可以使用System.Windows.Threading.DispatcherTimer。

System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer(); 
dt.Interval = new TimeSpan(0, 0, 0, 0, 500); // 500 Milliseconds 
dt.Tick += new EventHandler(dt_Tick); 
dt.Start(); 

void dt_Tick(object sender, EventArgs e) 
{ 
     // Do Stuff here. 
} 
7

DispatchTimer是一個很好的選擇,因爲是定時器。

這是值得熟悉的差異和評估哪一個更適合你。

便利性(用於UI更新的DispatchTimer)或準確性(定時器的可預測性)是決定的關鍵。

Timer Class (System.Threading)

DispatcherTimer Class (System.Windows.Threading)

的DispatcherTimer在 每DispatcherTimer循環的頂部重新評估。

定時器不保證在發生時間間隔時確切地執行 ,但在保證時間間隔發生之前它們不會執行 。此 是因爲DispatcherTimer操作 與其他操作一樣放在DispatcherTimer 隊列中。執行 DispatcherTimer操作時,執行的操作是 ,具體取決於隊列中 隊列中的其他作業及其優先級。

如果使用System.Threading.Timer, 值得注意的是,定時器運行 在不同的線程,則用戶 界面(UI)線程。爲了 訪問UI線程上的對象,需要使用Dispatcher.BeginInvoke將操作發佈到UI線程 的DispatcherTimer所需的 。當使用 DispatcherTimer時,這是不必要的 。

相關問題