当我多次订阅Timer.Elapsed事件时会发生什么?

时间:2013-08-01 06:13:50

标签: c# timer event-handling

所以我有一个System.Timers.timer,只有几次才会被禁用。 “Timer.Elapsed”事件订阅了一个事件处理程序,该事件处理程序计算滴答并在一定量的滴答之后禁用计时器。请注意,我不会取消订阅活动。

在将事件订阅到同一事件处理程序几次后,我意识到滴答间隔要短得多?

当Timer.Elapsed事件连续订阅事件处理程序而不取消订阅时会发生什么?

2 个答案:

答案 0 :(得分:1)

如果您订阅了多个活动。每当函数将在调用事件时执行。

发生这种情况是因为每个函数都在委托函数列表中单独复制它;

您可以使用此

删除未订阅的活动
timer.tick -= yourFunction();

答案 1 :(得分:0)

如果您多次订阅一个事件,例如10次,那么绑定到该事件的方法将被触发10次。