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