Timer组件在两种命名空间的一些区别
Timer组件在两种命名空间的一些区别
在中途的测试中,还发现一个问题,是关于Tick 事件的。
Tick事件触发代码this.timer1.Tick += new EventHandler(timer1_Tick);可以加也可以不加加与不加的区别是:加上了以后,是隔一定的时间再次触犯时间,而每加的话每次触犯两次(不过第一个不结束他不会运行第二个)。这让我很不明白。 貌似是可以正常执行的,为什么不同呢?
附两种命名空间下的Timer的不同之处:
System.Windows.Forms 命名空间
事件 |
当指定的计时器间隔已过去而且计时器处于启用状态时发生。 |
|
方法 |
启动计时器。 |
|
方法 |
停止计时器。 |
Interval 属性
属性值
类型:System.Int32
Int32 指定在相对于上一次发生的 Tick 事件引发 Tick 事件之前的毫秒数。该值不能小于 1。计时单位为毫秒,无默认值。
Tick时间的委托事件:
EventHandler 是一个预定义的委托,专用于表示不生成数据的事件的事件处理程序方法。如果事件生成数据,则必须提供自己的自定义事件数据类型,并且必须要么创建一个委托,其中第二个参数的类型为自定义类型,要么使用泛型 EventHandler(TEventArgs) 委托类并用自定义类型替代泛型类型参数。
若要将事件与处理事件的方法关联,请向事件添加委托的实例。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。
System.Timers 命名空间
事件 |
达到间隔时发生。 |
|
方法 |
||
方法 |
Interval属性
属性值
类型:System.Double
引发 Elapsed 事件的间隔时间(以毫秒为单位)。默认为 100 毫秒。
Elapsed的委托事件:
创建 ElapsedEventHandler 委托时,标识将处理事件的方法。若要使该事件与事件处理程序相关联,请将该委托的一个实例添加到事件中。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。