场景
C#中实现计时器功能(定时任务和计时多长时间后执行某方法):
C#中实现计时器功能(定时任务和计时多长时间后执行某方法)_c#定时器5分钟_霸道流氓气质的博客-CSDN博客
以上关于定时器的使用。
在实现点击按钮启动定时器,点击停止按钮停止定时器时发现,重复多次后会导致定时器方法累计重复执行。
联想到如下情况
C#中窗口关闭时没有取消事件订阅导致事件重复执行的解决方法:
C#中窗口关闭时没有取消事件订阅导致事件重复执行的解决方法_事件重复绑定 c#_霸道流氓气质的博客-CSDN博客
所以想到在停止定时器时只是简单的stop执行了,没有对定时器具体执行的方法解除绑定,
因为Timer是在初始化一次的,并不是每次都new一个,所以需要在停止定时器时对执行方法解除绑定。
注:
博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客
扫描二维码关注公众号,回复:
16930835 查看本文章
实现
1、初始化定时器
Timer _timer = new Timer();
作为类变量使用
2、启动定时器
_timer.Interval = scheduleInterval;
_timer.Tick += _timer_Tick;
_timer.Start();
3、停止定时器
_timer.Tick -= _timer_Tick;
_timer.Stop();
4、具体业务场景参考
C#中实现定时器Timer定时判断IP是否ping通(连通)和端口号是否telnet可达(可用):
C#中实现定时器Timer定时判断IP是否ping通(连通)和端口号是否telnet可达(可用)_霸道流氓气质的博客-CSDN博客