ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

.Net 自定义定时器

.Net 自定义定时器
    public class MyTimer{public MyTimer(TimerCallback callback, object? state, int dueTime, int period){Callback = callback;DueTime = dueTime;Period = period;}public TimerCallback Callback { get; set; }/// <summary>/// 开始循环计时/// </summary>public int DueTime { get; set; }/// <summary>/// 循环周期/// </summary>public int Period { get; set; }public CancellationTokenSource cst { get; set; }public void Start(){Task.Run(() => {// 设置线程优先级Thread.CurrentThread.Priority = ThreadPriority.Highest;cst = new CancellationTokenSource();while (!cst.IsCancellationRequested){Callback(null);Thread.Sleep(Period);}});}public void Stop(){if(cst != null)cst.Cancel();}}
MyTimer timer = new MyTimer(Handler,null,-1,250);
// 定时器启动
timer.Start();
// 定时器停止
timer.Stop();public void Handler(object sender)
{byte[] byteData;lock (Definition.P_Lock){Definition.P_Transmit("182756f4", byteData);//new byte[] { 0x69,0x19,0xC4,0x09,0x01,0x3C,0x64,0x50});
    }
}

 

返回列表