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(); //执行完毕后再开启器
}

示例
需求就是,在代码启动后,自动调用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:解决 调用线程无法访问此对象,因为另一个线程拥有该对象问题

posted @ 2022-05-25 08:56  槑孒  阅读(1621)  评论(0编辑  收藏  举报