Stay hungry,Stay foolish!

0%

C# 定时器的使用示例

一、前言

之前接到一个需求,需要定时检测该时刻指定的文件夹的最后修改时间,判断这个时间与当前时间是否超过24小时,如果超过24小时则发送邮件给邮件组报警。可以通过线程来实现,也可以直接用C#的Timer组件来实现,下面是简单Timer的示例。

二、代码示例

每1秒钟(1000毫秒)执行一次指定的方法。也可以指定到了什么时间点就执行哪些方法,如下面的代码,每到整点和30分的时候,就会执行另外的一个语句块。

1
private static System.Timers.Timer timer = new System.Timers.Timer(); // 定时器
2
3
        static void Main(string[] args)
4
        {
5
            timer.Enabled = true;
6
            timer.Interval = 1000 * 1; // 1秒检测一次
7
            timer.Start();
8
            timer.Elapsed += new System.Timers.ElapsedEventHandler(TimingProcess);
9
            Console.WriteLine("开始时间为:{0:HH:mm:ss.fff}", DateTime.Now);
10
            Console.WriteLine("\n输入Enter结束程序");
11
            Console.ReadLine();
12
            timer.Stop();
13
            timer.Dispose();
14
            Console.WriteLine("程序结束...");
15
        }
16
private static void TimingProcess(object sender, System.Timers.ElapsedEventArgs e)
17
        {
18
            Console.WriteLine("定时器触发于:{0:HH:mm:ss.fff}",e.SignalTime);
19
            // 在这里调用要定时执行的方法
20
            int minVal = e.SignalTime.Minute;    // 如果等于某个值就开始执行程序
21
            if (minVal == 0 || minVal == 30)
22
            {
23
                Console.WriteLine("每半小时检测一次:{0:HH:mm:ss.fff}", e.SignalTime);
24
            }
25
        }

三、结果截图

202007192246282020-7-19-22-46-29