服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - c# 实现计时器功能

c# 实现计时器功能

2022-10-25 13:09霸道的程序猿 C#

这篇文章主要介绍了c# 实现计时器功能的示例代码,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下

场景

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

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

实现

但是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(控制台应用程序)无法使用。

使用代码示例:

新建定时器类对象

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

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

?
1
_timer.Interval = 1000;

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

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

启动计时器

?
1
_timer.Start();

停止计时器

?
1
_timer.Stop();

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

所以改为了System.Timers.Timer

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

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

设置定时器的执行事件

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

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

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

具体执行的事件方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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的时候执行具体的业务。

启动定时器

?
1
timer.Enabled = true;

停止计时器

?
1
timer.Enabled = false;

以上就是c# 实现计时器功能的详细内容,更多关于c# 计时器的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/badaoliumangqizhi/p/12935552.html

延伸 · 阅读

精彩推荐
  • C#c# 将Datatable数据导出到Excel表格中

    c# 将Datatable数据导出到Excel表格中

    本文主要介绍了c# 将Datatable数据导出到Excel表格中的方法。具有很好的参考价值。下面跟着小编一起来看下吧...

    Resources9042021-12-29
  • C#C#单例模式(Singleton Pattern)详解

    C#单例模式(Singleton Pattern)详解

    这篇文章主要为大家详细介绍了C#单例模式Singleton Pattern的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    SuagrMatl8102022-01-20
  • C#浅谈C#中List<T>对象的深度拷贝问题

    浅谈C#中List<T>对象的深度拷贝问题

    下面小编就为大家带来一篇浅谈C#中List<T>对象的深度拷贝问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C#教程网11612021-04-28
  • C#C#中数组、ArrayList和List三者的区别详解及实例

    C#中数组、ArrayList和List三者的区别详解及实例

    这篇文章主要介绍了C#中数组、ArrayList和List三者的区别详解及实例的相关资料,需要的朋友可以参考下...

    zhang_xinxiu3752021-12-15
  • C#关于C#中yield关键字的深入解析

    关于C#中yield关键字的深入解析

    这篇文章主要给大家介绍了关于C#中yield关键字的深入解析,文中通过示例代码介绍的非常详细,对大家的学习或者使用C#具有一定的参考学习价值,需要的...

    小世界的野孩子4262022-08-09
  • C#C#请求http向网页发送接收数据的方法

    C#请求http向网页发送接收数据的方法

    这篇文章主要为大家详细介绍了C#请求http向网页发送数据、网页接收的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Joker373712022-01-19
  • C#C#使用Unity实现剪刀石头布游戏

    C#使用Unity实现剪刀石头布游戏

    这篇文章主要为大家详细介绍了C#语言使用Unity实现剪刀石头布游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    莹莹carriex4722022-03-08
  • C#结合.net框架在C#派生类中触发基类事件及实现接口事件

    结合.net框架在C#派生类中触发基类事件及实现接口事件

    这篇文章主要介绍了结合.net框架在C#派生类中触发基类事件及实现接口事件,示例的事件编程中包括接口和类的继承等面向对象的基础知识,需要的朋友可以...

    C#教程网8212021-11-11