C# 使用Timer类和DateTime类,制作简单的计时器

1,System.Timers.Timer
可以实现在设定的间隔内执行Elapsed事件,构造参数为毫秒

2,DateTime.Now.Ticks
获取当前时间与0001年1月1日00:00的时间间隔间隔数,单位是0.1纳秒(千万分之一秒)

public class TimerManager
{
    private long timeTicks;
    private Timer timer;

    public TimerManager()
    {
        timeTicks = DateTime.Now.Ticks;
        timer = new Timer(1000);
        timer.Elapsed += Time_Elapsed;
        timer.Start();
    }

    void Time_Elapsed(object sender, ElapsedEventArgs e)
    {
        //时间间隔完成之后调用的事件方法
        if (DateTime.Now.Ticks - timeTicks >= 3)
        {
            Console.WriteLine("已经过了3秒了");
            timer.Close();
        }
    }
    
    static void TimeTicks()
    {
    TimerManager timerManager = new TimerManager();
    }

构造一个新的TimerManager类,即可进行计时。上述程序,是每隔1000毫秒(1秒)判断一次间隔时间是否达到3秒。

通常扩展用法,可以在构造方法内加入需求的时间间隔和委托方法,设定在任意时间之后执行想要的方法!

Example:

public delegate void TimeDelegate();
public class TimerManager
{
    private long timeTicks;
    private Timer timer;
    private TimeDelegate timeDelegate;

    public TimerManager(long timeTicks,TimeDelegate td)
    {
        this.timeTicks = DateTime.Now.Ticks + timeTicks;
        this.timeDelegate = td;
        timer = new Timer(1000);
        timer.Elapsed += Time_Elapsed;
        timer.Start();
    }

    void Time_Elapsed(object sender, ElapsedEventArgs e)
    {
        //时间间隔完成之后调用的事件方法
        if (DateTime.Now.Ticks - timeTicks >= 0)
        {
            timeDelegate();

            Console.WriteLine("已经过了3秒了");
            timer.Close();
        }
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值