码迷,mamicode.com
首页 > 其他好文 > 详细

Timer的使用

时间:2015-07-03 17:21:15      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

1.System.Timers.Timer

(1)在应用程序中生成定期事件。

(2)如果 SynchronizingObject 属性为 null,则在 ThreadPool 线程上引发 Elapsed 事件。 如果 Elapsed 事件的处理时间比 Interval 长,在另一个 ThreadPool 线程上将会再次引发此事件。在这种情况下,事件处理程序应当是可重入的。

(3)即使 SynchronizingObject 不是 null,Elapsed 在 Dispose 或 Stop 方法调用后或 Enabled 属性设置为 false 后,事件可以发生,这是因为引出 Elapsed 事件的信号总是排队等待执行线程池线程。 解决此争用条件的一种方法是:设置一个标志,通知 Elapsed 事件的事件处理程序忽略随后的事件。

(4)当 Elapsed 事件由可视化 Windows 窗体组件(如按钮)处理时,通过系统线程池访问组件可能导致异常,或者可能不管用。 为避免这种情况,可将 SynchronizingObject 设置为 Windows 窗体组件,该组件将导致在创建它的同一线程上调用处理 Elapsed 事件的方法。

2.System. Thread.Timer

(1)由计时器执行的回调方法应该是可重入的,因为它是在 ThreadPool 线程上调用的。

(2)创建计时器时,可以指定在第一次执行方法之前等待的时间量(截止时间)以及此后的执行期间等待的时间量(时间周期)。

(3)不支持SynchronizingObject。

3.System.Windows.Form.Timer

(1)实现按用户定义的时间间隔引发事件的计时器。 此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用。

Timer的使用

标签:

原文地址:http://www.cnblogs.com/JustYong/p/4619174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!