2011-01-10 52 views
1

我正在使用timers.timer每5秒觸發一個事件。我注意到一段時間後,它每6秒發射一次。有很多其他線程並行運行。 timers.timer事件將使用threadpool生成。漂移是由於運行paralley的其他線程。那是對的嗎?我的應用程序是wpf應用程序。我無法使用調度程序計時器,因爲它可能會影響用戶界面。timers.timer not firing exactly

我想每5秒鐘發一個計時器事件,而不會影響其他線程,而不會影響UI。什麼是solutios /最佳方法。

+1

出你問過在計算器上只接受6個回答21個問題,是其他的答案如此糟糕? – 2011-01-10 05:01:08

+0

哦,親愛的你真的需要接受一些答案,以引誘人們給出更多的答案......每個人都希望得到一些功勞。這就是爲什麼這個網站存在..它不是Ask.com – 2011-01-10 05:31:04

回答

1

我不確定爲什麼會發生這種情況,但timer.timer不是爲此目的而開發的。如果你打算在不同的線程上同時運行多個定時器,那麼可以考慮使用System.Threading.Timer。

System.Threading.Timer是一個簡單的輕量級定時器,它使用回調方法並由線程池線程提供服務。不建議用於Windows窗體,因爲它的回調不會在用戶界面線程上發生。 System.Windows.Forms.Timer是用於Windows窗體的更好選擇。對於基於服務器的定時器功能,您可以考慮使用System.Timers.Timer,它引發事件並具有其他功能。 看看

http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx