博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#使用Timer.Interval指定时间间隔与指定时间执行事件
阅读量:5743 次
发布时间:2019-06-18

本文共 2112 字,大约阅读时间需要 7 分钟。

C#中,Timer是一个定时器,它可以按照指定的时间间隔或者指定的时间执行一个事件。

指定时间间隔是指按特定的时间间隔,如每1分钟、每10分钟、每1个小时等执行指定事件;

指定时间是指每小时的第30分、每天10:30:30(每天的10点30分30秒)等执行指定的事件;

在上述两种情况下,都需要使用 Timer.Interval,方法如下:

1、按特定的时间间隔:

1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4  5 using System.Timers; 6  7  8 namespace TimerExample 9 {10     class Program11     {12         static void Main(string[] args)13         {14             System.Timers.Timer timer = new System.Timers.Timer();15             timer.Enabled = true;16             timer.Interval = 60000; //执行间隔时间,单位为毫秒;17             timer.Start();18             timer.Elapsed+= new System.Timers.ElapsedEventHandler(test);19 20             Console.ReadKey();21 22         }23 24         private static void test(object source,ElapsedEventArgs e)25         {26             Console.WriteLine("OK, test event is fired at: "+DateTime.Now.ToString());27         }28     }29 }

上述代码,timer.Inverval的时间单位为毫秒,60000为1分钟,所以,上代码是每隔1分钟执行一次事件test。注意这里是Console应用程序,所以在主程序Main中,需要有Console.Readkey()保持Console窗口不关闭,否则,该程序执行后一闪就关闭,不会等1分钟的时间。

2、在指定的时刻运行:

1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Timers; 5  6  7 namespace TimerExample1 8 { 9     class Program10     {11         static void Main(string[] args)12         {13             System.Timers.Timer timer = new System.Timers.Timer();14             timer.Enabled = true;15             timer.Interval = 60000; //执行间隔时间,单位为毫秒;16             timer.Start();17             timer.Elapsed += new System.Timers.ElapsedEventHandler(test);18 19             Console.ReadKey();20         }21 22         private static void test(object source,ElapsedEventArgs e)23         {24             if (DateTime.Now.Hour == 12 && DateTime.Now.Minute == 5)    //如果当前时间是12点05分25                 Console.WriteLine("OK, event fired at: "+DateTime.Now.ToString());26         }27 28     }29 }

上述代码,是在指定的每天12:05分执行事件。这里需要注意的是,由于是指定到特定分钟执行事件,因此,timer.Inverval的时间间隔最长不得超过1分钟,否则,长于1分钟的时间间隔有可能会错过12:05分这个时间节点,从而导致无法触发该事件。

参考链接:https://www.cnblogs.com/wusir/p/3636149.html

转载于:https://www.cnblogs.com/oysterlxk/p/10403515.html

你可能感兴趣的文章
[c语言]c语言中的内存分配[转]
查看>>
JS 原生ajax写法
查看>>
day 10 字符编码和文件处理 细节整理
查看>>
如何打造亚秒级加载的网页1——前端性能
查看>>
「陶哲軒實分析」 習題 3.5.9
查看>>
在首次发布三周之后,MLflow迎来了0.2版本
查看>>
聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
查看>>
Composer管理PHP依赖关系
查看>>
React.js学习笔记之JSX解读
查看>>
WebPack1.x 常用功能介绍
查看>>
我所了解的Libevent和SEDA架构
查看>>
在Xcode7/7.1中使用Http请求
查看>>
Socket编程问题小记
查看>>
基于Flask-Angular的项目组网架构与部署
查看>>
JDK 11 将引入低延迟 GC,大幅度缩短 GC 暂停时长
查看>>
Rust 2018 即将到来:设法从 Rust 2015 过渡
查看>>
【图像识别】白天鹅黑天鹅灰天鹅?卷积神经网络帮你识别 ...
查看>>
js笔记
查看>>
一张图道尽程序员的出路
查看>>
Android 开发应该掌握的 Proguard 技巧
查看>>