C#用于实现心跳机制的定时器Demo

1 定时器

Timer的一些属性和方法:

属性与方法 说明
start() 将Enabled设置为true,开始引发事件
Stop() 将Enabled设置为false,停止引发事件
Close() 释放占用的资源
AutoRest 循环引发还是只引发一次
Enabled 提示Timer是否引发事件
Intervel 获取和设置引发事件的间隔时间,单位为毫秒
  • Timer由线程池实现,Tick和main不在同一个线程。
using System;
using System.Timers;


class MainClass
{
    static int count = 0;
    static void Main(string[] args)
    {
        Console.WriteLine("Hello Timer!!!");
        Timer timer = new Timer();
        timer.AutoReset = true;//循环引发
        timer.Interval = 2000;//2秒一次
        timer.Elapsed += new ElapsedEventHandler(Tick);//绑定引发的事件
        timer.Start();//开始引发
        Console.Read();//不让控制台窗口关闭
        timer.Stop();//停止引发
        timer.Close();//释放资源
    }
    public static void Tick(object sender, System.Timers.ElapsedEventArgs e)
    {
        Console.WriteLine("心跳:"+count++);
    }
}

2 运行结果

在这里插入图片描述

3 总结

      心跳机制规定客户端每隔一段时间给服务端发送一个特定信号,服务端会记录客户端最后一次发送心跳信号的时间,如果相隔太久,便认为客户端已经断开,于是断开连接。服务端开一个每秒执行的定时器,将遍历所有连接,并判断连接的心跳时间。而心跳机制的实现就是这里所说的定时器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章