场景

在低液位预警弹窗点击确定后需要实现一个计时器,比如在五分钟后再执行监控。

实现思路是使用Timer然后每秒执行一个方法,在方法中对秒数进行减1操作,等倒计时结束后执行相应的操作。

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载

实现

但是Timer有三个

1.定义在System.Windows.Forms里  
2.定义在System.Threading.Timer类里  
3.定义在System.Timers.Timer类里

一开始使用的是System.Windows.Forms里面的

System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API  SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console  Application(控制台应用程序)无法使用。

使用代码示例:

新建定时器类对象

System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();

设置执行的间隔时间,单位毫秒

_timer.Interval = 1000;

设置间隔时间内执行的方法

_timer.Tick +=_timer_Tick;
private void _timer_Tick(object sender, EventArgs e){//执行的业务}

启动计时器

_timer.Start();

停止计时器

_timer.Stop();

但是发现此定时器并不执行,其每秒执行一次的方法不执行,原来其在控制台程序中没法使用

所以改为了System.Timers.Timer

新建定时器对象并设置执行的间隔时间为1秒

System.Timers.Timer _timerWaterTank = new System.Timers.Timer(1000);//实例化Timer类,设置间隔时间为1000毫秒; 

设置定时器的执行事件

_timerWaterTank.Elapsed += new System.Timers.ElapsedEventHandler(_timerWaterTank_Tick);//到达时间的时候执行事件;  

设置是执行一次还是一直执行

_timerWaterTank.AutoReset = true;//设置是执行一次(false)还是一直执行(true);

具体执行的事件方法

            private void _timerWaterTank_Tick(object sender, EventArgs e){System.Timers.Timer timer = sender as System.Timers.Timer;//要计时的时间秒数this.LowLevelSecondsWaterTank--;if (this.LowLevelSecondsWaterTank <= 0){//倒计时结束后执行的业务Global.PublicVar.Instance.IsGoOnMonitorWaterPool = true;timer.Enabled = false;this.LowLevelSecondsWaterTank = Global.LOW_LEVEL_MONITOR_SECONDS;}}

这样让定时器一秒执行一次方法,在此方法中将秒数减1,这样在秒数到0的时候执行具体的业务。

启动定时器

timer.Enabled = true;

停止计时器

timer.Enabled = false;

C#中实现计时器功能(定时任务和计时多长时间后执行某方法)相关推荐

  1. 假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100。试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb

    假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb/s的以太网呢? 以 ...

  2. 【Unity3D日常开发】Unity3D中实现计时器工具类-正计时、倒计时、暂停计时、加速计时

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  3. 当windows 7系统中程序和功能无法卸载IE9,10,11时的方法

    1.首先进入打开这个 C:\Windows\TEMP\ 文件夹,将里面的所有文件都清空了. 2.依次点击"开始"-"所有程序"-"附件",右 ...

  4. java一段时间后执行一块代码_java自带的ScheduledExecutorService定时任务正常执行一段时间后部分任务不执行...

    目前我有用java自带的ScheduledExecutorService线程任务做定时调度功能,我开启了足够多的线程数,比如开了300,实际上用到的只有50个. 我用的是newScheduledThr ...

  5. Timer类 和 TimerTask类。一种有用计时器工具。可以每隔相同时间去执行某任务一次。

    1,编写一个类 继承TimerTask类 public class MyTimerTask extends TimerTask {@Overridepublic void run() {System. ...

  6. php时间到期提醒功能,php还剩多长时间过期函数

    还剩多长时间过期 public function TimeToSeconds( $end_time ) { date_default_timezone_set('Asia/Shanghai'); $n ...

  7. 假定在使用CSMA/CD协议的10Mbit/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mbit/s的以太网

    答:对于10mb/s的以太网,以太网把争用期定为5.12微妙,要退后100个争用期,等待时间是5.12(微妙)*100=512微妙

  8. 假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行碰撞算法是选择了随机数R=100 试问这个站需要等待多长时间后才能再次发送数据,如果是100Mb/s的以太网呢?

    解: 以太网最小帧长度为64字节,也就是64*8=512bit. 1)当以太网为10Mbit时,争用期为 : 512/(10*1000000)=0.0000512秒=51.2us 现在碰撞算法R=10 ...

  9. @async注解_SpringBoot中Async异步方法和定时任务介绍

    1.功能说明 Spring提供了Async注解来实现方法的异步调用.即当调用Async标识的方法时,调用线程不会等待被调用方法执行完成即返回继续执行以下操作,而被调用的方法则会启动一个独立线程来执行此 ...

最新文章

  1. SQL Server 镜像构建
  2. SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转
  3. python发送邮件带附件_在python中如何发送带有附件的邮件?
  4. 将redis加入到elk日志系统里
  5. 计算机辅助药物设计局限,计算机辅助药物设计高效低耗
  6. 如何修改Linux命令提示符
  7. Scala _02基础
  8. 在mysql中插入日期
  9. IIS6 mysql速度_Win 2003下IIS6+Mysql+php5.2  isapi搭建 升级php5.2到5.3测试 借助fastcgi实现...
  10. Rancher 1.6发布:EBS支持、密文管理和CLI增强
  11. 弹性系数和线径的计算公式_弹簧力的计算公式
  12. 七天学完Vue之第一天学习笔记(Vue的介绍,时间修饰符以及常用指令)
  13. php 写ps功能,ps的作用是什么
  14. Matrix Concatenate 矩阵串联
  15. 使用Blender导出多个动画的GLTF模型
  16. 通俗易懂理解几何光学(五)光线的光路计算及像差理论
  17. Auto Layout和UILabel
  18. “互联网思维”大起底
  19. 超低功耗 段码LCD液晶显示驱动IC-VKL060 SSOP24 15SEG*4COM,超低工作电流约7.5微安,多用于传感器/水电表/工控仪表等
  20. 分子动力学模拟笔记-GROMACS模拟蛋白质小分子体系(二)

热门文章

  1. Unfair contest 模拟-分类讨论
  2. liunx系统中的盘符能修改嘛_装系统教程!如何从U盘启动(中)!小白也能变装机大神!...
  3. iqueryable怎么进行操作_钢结构施工要点有哪些?怎么进行操作?
  4. php trimmsg,c语言实现php的trim标签
  5. 兼容单片机的CRC32查表计算程序的C语言实现
  6. 人月神话贯彻执行_上古神话知识梳理,精华帖
  7. 汉字转拼音php代码函数,php中将汉字转换成拼音的函数代码
  8. 21天学通python第4章课后题答案_人工智能教程习题及答案第4章习题参考解答
  9. java 注释 超链接_java_Java代码注释规范详解,代码附有注释对程序开发者来 - phpStudy...
  10. tf+gpu无法复现