C# 定时 作者:马育民 • 2024-08-25 17:57 • 阅读:10014 # 介绍 有下面四种方式: 1. System.Timers.Timer 2. System.Threading.Timer 3. System.Windows.Forms.Timer 4. System.Windows.Threading.DispatcherTimer(WPF中的定时器) # System.Timers.Timer(荐) ##### 实例化Timer类 设置间隔时间为10000毫秒 ``` System.Timers.Timer t = new System.Timers.Timer(10000); ``` ##### 设置 ``` t.Elapsed += new System.Timers.ElapsedEventHandler(timerHandle); //到达时间的时候执行倒计时事件 //设置是执行一次(false)还是一直执行(true); t.AutoReset = true; ``` ##### 要执行的事件 ``` public void timerHandle(object source, System.Timers.ElapsedEventArgs e) { t.Stop(); } ``` ##### 启动 ``` timer.Enabled = true ``` 或者 ``` // 原理还是设置timer.Enabled = true; timer.Start() ``` ##### 停止 停止引发Elapsed事件,并且取消线程池中当前等待队列中剩余任务的执行。 ``` timer.Enabled = false ``` 或者 ``` //原理还是设置timer.Enabled = false timer.Stop() ``` # System.Timers.Timer 详见: https://blog.csdn.net/qq_22120623/article/details/119701432 https://www.cnblogs.com/sunny3158/p/16735712.html # System.Windows.Forms.Timer 该计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用,适用于单线程环境, 在此环境中, UI 线程用于执行处理。它要求用户代码提供 UI 消息泵, 并且始终从同一线程操作, 或将调用封送到 其他线程。Windows 窗体计时器组件是单线程的, **且限制为55毫秒的准确度,准确性不高** 详见:https://www.cnblogs.com/sunny3158/p/16735712.html # System.Windows.Threading.DispatcherTimer WPF中的定时器,不推荐使用,需要额外引用库 详见:https://blog.csdn.net/qq_22120623/article/details/119701432 参考: https://blog.csdn.net/keneyr/article/details/97404369 原文出处:https://malaoshi.top/show_1IX8J2mV6WR9.html