Timer组件在两种命名空间的一些区别

Timer组件在两种命名空间的一些区别

 

在中途的测试中,还发现一个问题,是关于Tick 事件的。

Tick事件触发代码this.timer1.Tick += new EventHandler(timer1_Tick);可以加也可以不加加与不加的区别是:加上了以后,是隔一定的时间再次触犯时间,而每加的话每次触犯两次(不过第一个不结束他不会运行第二个)。这让我很不明白。 貌似是可以正常执行的,为什么不同呢?

      附两种命名空间下的Timer的不同之处:

System.Windows.Forms 命名空间

 

事件

Tick

当指定的计时器间隔已过去而且计时器处于启用状态时发生。

方法

Start

启动计时器。

方法

Stop

停止计时器。

Interval 属性

属性值

类型:System.Int32

Int32 指定在相对于上一次发生的 Tick 事件引发 Tick 事件之前的毫秒数。该值不能小于 1。计时单位为毫秒,无默认值。

Tick时间的委托事件:

EventHandler 是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。如果事件生成数据,则必须提供自己的自定义事件数据类型,并且必须要么创建一个委托,其中第二个参数的类型为自定义类型,要么使用泛型 EventHandler(TEventArgs) 委托类并用自定义类型替代泛型类型参数。

若要将事件与处理事件的方法关联,请向事件添加委托的实例。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。

 

 

System.Timers 命名空间

事件

Elapsed

达到间隔时发生。

方法

Start

通过将 Enabled 设置为 true 开始引发 Elapsed 事件。

方法

Stop

通过将 Enabled 设置为 false 停止引发 Elapsed 事件。

Interval属性

属性值

类型:System.Double

引发 Elapsed 事件的间隔时间(以毫秒为单位)。默认为 100 毫秒。

 

Elapsed的委托事件:

创建 ElapsedEventHandler 委托时,标识将处理事件的方法。若要使该事件与事件处理程序相关联,请将该委托的一个实例添加到事件中。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。

原文地址:https://www.cnblogs.com/jianggest/p/Timer.html