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