C# Timer 定时任务

本文深入讲解了C#中Timer的使用方法,包括如何设置按特定时间间隔或指定时间执行事件,提供了具体代码示例,帮助读者理解并掌握Timer在不同场景下的应用。

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

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

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

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

1、按特定的时间间隔:

复制代码
复制代码
using System;
using System.Timers;

namespace TimerExample
{
class Program
{

    static void Main(string[] args)
    {
        System.Timers.Timer timer = new System.Timers.Timer();
        timer.Enabled = true;
        timer.Interval = 600000; //执行间隔时间,单位为毫秒; 这里实际间隔为10分钟  
        timer.Start();
        timer.Elapsed += new System.Timers.ElapsedEventHandler(test); 

        Console.ReadKey();
    }

    private static void test(object source, ElapsedEventArgs e)
    {

          Console.WriteLine("OK, test event is fired at: " + DateTime.Now.ToString());
       
    }
}

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

复制代码
复制代码
using System;
using System.Timers;

namespace TimerExample1
{
class Program
{

    static void Main(string[] args)
    {
        System.Timers.Timer timer = new System.Timers.Timer();
        timer.Enabled = true;
        timer.Interval = 60000;//执行间隔时间,单位为毫秒;此时时间间隔为1分钟  
        timer.Start();
        timer.Elapsed += new System.Timers.ElapsedEventHandler(test); 

        Console.ReadKey();
    }

    private static void test(object source, ElapsedEventArgs e)
    {

        if (DateTime.Now.Hour == 10 && DateTime.Now.Minute == 30)  //如果当前时间是10点30分
            Console.WriteLine("OK, event fired at: " + DateTime.Now.ToString());
        
    }
}
上述代码,是在指定的每天10:30分执行事件。这里需要注意的是,由于是指定到特定分钟执行事件,因此,timer.Inverval的时间间隔最长不得超过1分钟,否则,长于1分钟的时间间隔有可能会错过10:30分这个时间节点,从而导致无法触发该事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌生人的DEMO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值