C#中timer定時器的用法
阿新 • • 發佈:2022-05-25
Timer定時器,如果沒有stop,是會按指定間隔時間一直重複執行的,
所以如果只想執行一次,必須得關閉。
System.Timers.Timer t = new System.Timers.Timer(10000);//例項化Timer類,設定間隔時間為10000毫秒; t.Elapsed += new System.Timers.ElapsedEventHandler(Execute);//到達時間的時候執行事件; t.AutoReset = true;//設定是執行一次(false)還是一直執行(true); t.Enabled = true;//是否執行System.Timers.Timer.Elapsed事件; t.Start(); //啟動定時器 //上面初始化程式碼可以寫到建構函式中 public void Execute(object source, System.Timers.ElapsedEventArgs e) { t.Stop(); //先關閉定時器 MessageBox.Show("OK!"); t.Start(); //執行完畢後再開啟器 }
個人GIS實驗示例
需求就是,在程式碼啟動2後,自動呼叫AutoLoadGeo
方法。
System.Timers.Timer t = new System.Timers.Timer(2000); public MainWindow() { InitializeComponent(); Console.WriteLine(); t.Elapsed += new ElapsedEventHandler(AutoLoadGeo);//到達時間的時候執行事件; t.AutoReset = true; t.Start(); } private void AutoLoadGeo(object source, ElapsedEventArgs e) { t.Stop(); // 這裡關閉它,就只是執行一次了。 Console.WriteLine("ok"); }
C#實現定時器的幾種方案
如何將引數傳遞給ElapsedEventHandler呼叫的函式?
WPF:解決 呼叫執行緒無法訪問此物件,因為另一個執行緒擁有該物件問題