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 委托时,标识将处理事件的方法。若要使该事件与事件处理程序相关联,请将该委托的一个实例添加到事件中。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步