2013-08-01 65 views
1

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

经过多次订阅事件到同一个事件处理程序,我意识到滴答间隔要短得多?

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

+2

发生内存泄漏删除退订事件... –

回答

1

如果您订阅的事件多于一个。每次该函数将在事件调用时执行。

发生这种情况是因为每个函数都在委托函数列表的单独副本上有它;

您可以使用此

timer.tick -= yourFunction(); 
0

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

相关问题