2011-01-10 86 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