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}); } }