C#Timer--定时器类的简单使用

本文详细介绍了C#中的System.Timers.Timer类的使用,包括如何设置初始属性、定时器间隔、执行事件、是否重复执行以及是否启用。通过示例代码展示了如何创建一个每两秒执行一次的定时器,并在控制台打印当前时间和执行特定方法。
摘要由CSDN通过智能技术生成

System.Timers.Timer

定时器就是经过固定时间,执行固定任务。

定时器简单使用

设置初始属性

初始化定时器间隔多少时间执行

System.Timers.Timer timer = new System.Timers.Timer(double interval);
interval是毫秒数。比如最后的毫秒数设为1000就是一秒。
也可以用无参构造函数创建后,用对象.interval设置。

设置执行的事件–Elapsed

timer.Elapsed += 需要方法名称。
经过上面设置好的毫秒后,执行事件。比如我要在指定时间内执行方法MyMethod,使用该参数Elapsed进行指定。timer.Elapsed += MyMethod。

该方法有且仅有两个参数MyMethod(Object source, ElapsedEventArgs e) ,且返回值为void。 其中的ElapsedEventArgs 是给Elapsed事件提供数据的对象。
当然了,你还可以再MyMethod中调用其他的方法。

设置是否重复执行–AutoReset

该参数的值类型为bool,默认为false。
如果为false,该定时器只会在第一次经过指定时间执行一次Elapsed方法,后续再经过指定时间间隔就不再执行。

如果为true则每经过时间间隔就执行一次该方法

设置是否触发Elapsed事件–Enabled

该参数的值类型为bool,默认为false。
如果为false,就算经过指定事件也不触发Elapsed事件
若为true,经过指定时间,执行Elapsed事件

简单示例–借用官方示例

using System;
using System.Timers;

public class TimerTest
{
    //定义定时器
    private static System.Timers.Timer aTimer;

    public static void Main()
    {
        //初始化定时器属性
        SetTimer();

        Console.WriteLine("\n键盘输入即可退出...\n");
        Console.WriteLine("定时器开始于 {0:HH:mm:ss.fff}", DateTime.Now);
        Console.ReadLine();//保持程序持续运行
        aTimer.Stop();//停止定时器
        Console.WriteLine("\n停止定时器...\n");
        aTimer.Dispose();//释放资源
        Console.WriteLine("退出...");
        Console.ReadLine();
    }

    private static void SetTimer()
    {
        Console.WriteLine("初始化当前的定时器");
        // 创建一个两秒一次的定时器
        aTimer = new System.Timers.Timer(2000);
        // 设置事件
        aTimer.Elapsed += MyMethod;
        aTimer.AutoReset = true;
        aTimer.Enabled = true;
        Console.WriteLine("设置完毕");
    }


    public static void A()
    {
        //在这里写真正的操作
        Console.WriteLine("我定时执行的操作A");
    }


    private static void MyMethod(Object source , ElapsedEventArgs e)
    {
        //我真正需要执行的操作
        Console.WriteLine("当前时间 {0:HH:mm:ss.fff}", DateTime.Now);
        Console.WriteLine("ElapsedEventArgs携带的数据 {0:HH:mm:ss.fff}", e.SignalTime);
        A();
    }
}

结果

在这里插入图片描述

官方文档在这里

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值