網站首頁 編程語言 正文
System.Timers.Timer
定時器就是經過固定時間,執行固定任務。
定時器簡單使用
設置初始屬性
初始化定時器間隔多少時間執行
System.Timers.Timer timer = new System.Timers.Timer(double interval);
interval是毫秒數。比如最后的毫秒數設為1000就是一秒。
也可以用無參構造函數創建后,用對象.interval設置。
設置執行的事件–Elapsed
timer.Elapsed += 需要方法名稱。
經過上面設置好的毫秒后,執行事件。比如我要在指定時間內執行方法MyMethod,使用該參數Elapsed進行指定。timer.Elapsed += MyMethod。
該方法有且僅有兩個參數MyMethod(Object source, ElapsedEventArgs e)
,且返回值為void。 其中的ElapsedEventArgs 是給Elapsed事件提供數據的對象。
當然了,你還可以再MyMethod中調用其他的方法。
設置是否重復執行–AutoReset
該參數的值類型為bool,默認為false。
如果為false,該定時器只會在第一次經過指定時間執行一次Elapsed方法,后續再經過指定時間間隔就不再執行。
如果為true則每經過時間間隔就執行一次該方法。
設置是否觸發Elapsed事件–Enabled
該參數的值類型為bool,默認為false。
如果為false,就算經過指定事件也不觸發Elapsed事件。
若為true,經過指定時間,執行Elapsed事件。
簡單示例–借用官方示例
using System; using System.Timers; public class TimerTest { ? ? //定義定時器 ? ? private static System.Timers.Timer aTimer; ? ? public static void Main() ? ? { ? ? ? ? //初始化定時器屬性 ? ? ? ? SetTimer(); ? ? ? ? Console.WriteLine("\n鍵盤輸入即可退出...\n"); ? ? ? ? Console.WriteLine("定時器開始于 {0:HH:mm:ss.fff}", DateTime.Now); ? ? ? ? Console.ReadLine();//保持程序持續運行 ? ? ? ? aTimer.Stop();//停止定時器 ? ? ? ? Console.WriteLine("\n停止定時器...\n"); ? ? ? ? aTimer.Dispose();//釋放資源 ? ? ? ? Console.WriteLine("退出..."); ? ? ? ? Console.ReadLine(); ? ? } ? ? private static void SetTimer() ? ? { ? ? ? ? Console.WriteLine("初始化當前的定時器"); ? ? ? ? // 創建一個兩秒一次的定時器 ? ? ? ? aTimer = new System.Timers.Timer(2000); ? ? ? ? // 設置事件 ? ? ? ? aTimer.Elapsed += MyMethod; ? ? ? ? aTimer.AutoReset = true; ? ? ? ? aTimer.Enabled = true; ? ? ? ? Console.WriteLine("設置完畢"); ? ? } ? ? public static void A() ? ? { ? ? ? ? //在這里寫真正的操作 ? ? ? ? Console.WriteLine("我定時執行的操作A"); ? ? } ? ? private static void MyMethod(Object source , ElapsedEventArgs e) ? ? { ? ? ? ? //我真正需要執行的操作 ? ? ? ? Console.WriteLine("當前時間 {0:HH:mm:ss.fff}", DateTime.Now); ? ? ? ? Console.WriteLine("ElapsedEventArgs攜帶的數據 {0:HH:mm:ss.fff}", e.SignalTime); ? ? ? ? A(); ? ? } }
結果
原文鏈接:https://blog.csdn.net/qq_44717657/article/details/123370355
相關推薦
- 2022-03-16 Quartz.Net使用方法詳解_C#教程
- 2022-12-13 Flutter?阻止系統鍵盤彈出的優雅方式_Android
- 2022-06-18 C++深入講解初始化列表的用法_C 語言
- 2022-09-28 基于OpenCV(python)的實現文本分割之垂直投影法_python
- 2022-04-02 Pandas實現groupby分組統計的實踐_python
- 2024-04-03 Validator工具驗證類,區分添加,刪除,修改
- 2022-08-15 apollo配置中心的client端分析
- 2022-08-04 GoFrame?gredis配置文件及配置方法對比_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支