所以我有一个System.Timers.timer只有几次才会被禁用。 “Timer.Elapsed”事件订阅了一个事件处理程序,该事件处理程序计数滴答并在一定数量的滴答之后禁用定时器。请注意,我不会取消订阅该活动。当我多次订阅Timer.Elapsed事件时会发生什么?
经过多次订阅事件到同一个事件处理程序,我意识到滴答间隔要短得多?
当Timer.Elapsed事件持续订阅事件处理程序而不取消订阅时会发生什么?
所以我有一个System.Timers.timer只有几次才会被禁用。 “Timer.Elapsed”事件订阅了一个事件处理程序,该事件处理程序计数滴答并在一定数量的滴答之后禁用定时器。请注意,我不会取消订阅该活动。当我多次订阅Timer.Elapsed事件时会发生什么?
经过多次订阅事件到同一个事件处理程序,我意识到滴答间隔要短得多?
当Timer.Elapsed事件持续订阅事件处理程序而不取消订阅时会发生什么?
如果您订阅的事件多于一个。每次该函数将在事件调用时执行。
发生这种情况是因为每个函数都在委托函数列表的单独副本上有它;
您可以使用此
timer.tick -= yourFunction();
如果您多次订阅一个事件,例如10次,绑定到该事件的方法会被触发10次。
发生内存泄漏删除退订事件... –