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 總結
心跳機制規定客戶端每隔一段時間給服務端發送一個特定信號,服務端會記錄客戶端最後一次發送心跳信號的時間,如果相隔太久,便認爲客戶端已經斷開,於是斷開連接。服務端開一個每秒執行的定時器,將遍歷所有連接,並判斷連接的心跳時間。而心跳機制的實現就是這裏所說的定時器。