1. 程式人生 > 其它 >C#中timer定時器的用法

C#中timer定時器的用法

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:解決 呼叫執行緒無法訪問此物件,因為另一個執行緒擁有該物件問題