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 运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200306094646826.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjcwMTU3,size_16,color_FFFFFF,t_70)
3 总结
心跳机制规定客户端每隔一段时间给服务端发送一个特定信号,服务端会记录客户端最后一次发送心跳信号的时间,如果相隔太久,便认为客户端已经断开,于是断开连接。服务端开一个每秒执行的定时器,将遍历所有连接,并判断连接的心跳时间。而心跳机制的实现就是这里所说的定时器。
|