C#四种定时器的用法

C#四种定时器的用法

C#四种定时器的用法

文章插图

需要这些哦
Visual Studio
电脑
用法1System.Windows.Forms.Timer
C#四种定时器的用法

文章插图

2代码如下:
 System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();//建立按时器
timer.Tick += new EventHandler(timer1_Tick);//事务处置timer.Enabled = true;//设置启用按时器timer.Interval = 1000;//执行时候timer.Start();//开启按时器
/// <summary>/// 按时器事务处置/// </summary>/// <param name="ser"></param>/// <param name="e"></param>private void timer1_Tick(object ser, EventArgs e){      timer.Stop();//遏制按时器      timer.Tick -= new EventHandler(timer1_Tick);//打消事务      timer.Enabled = false;//设置禁用按时器}

3System.Threading.Timer
C#四种定时器的用法

文章插图

4代码如下:
System.Threading.Timer timer;
timer = new System.Threading.Timer(new TimerCallback(timerCall), this, 3000, 0);//建立按时器
/// <summary>/// 事务处置/// </summary>/// <param name="obj"></param>private void timerCall(object obj){      timer.Dispose();//释放按时器}


5System.Timers.Timer
C#四种定时器的用法

文章插图

6代码如下:
System.Timers.Timer timer = new System.Timers.Timer(1000);//建立按时器, 设置距离时候为1000毫秒;
timer.Elapsed += new System.Timers.ElapsedEventHandler(theout);  //达到时候的时辰执行事务; timer.AutoReset = true;//设置是执行一次(false)仍是一向执行(true);  timer.Enabled = true;//需要挪用 timer.Start()或者timer.Enabled = true来启动它, timer.Start();//timer.Start()的内部道理仍是设置timer.Enabled = true;
/// <summary>///执行事务/// </summary>/// <param name="source"></param>/// <param name="e"></param>public void theout(object source, System.Timers.ElapsedEventArgs e){      timer.Elapsed -= new System.Timers.ElapsedEventHandler(theout);  //打消执行事务;         timer.Enabled = false;//禁用      timer.Stop();//遏制}

7System.Windows.Threading.DispatcherTimer(WPF中的按时器)
C#四种定时器的用法

文章插图

8代码如下:
private static System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();//建立按时器
timer.Tick += new EventHandler(theout);//执行事务timer.Interval = new TimeSpan(0, 0, 0, 1);//1s执行timer.IsEnabled = true;//启用timer.Start();//开启
【C#四种定时器的用法】/// <summary>///执行事务/// </summary>/// <param name="source"></param>/// <param name="e"></param>public static void theout(object ser, EventArgs e){     timer.Tick -= new EventHandler(theout);//打消执行事务;        timer.IsEnabled = false;//禁用     timer.Stop();//遏制}

注重事项DispatcherTimer是运行在UI线程上的, 其益处是可以在按时事务中点窜UI元素, 其它三种按时器是运行在自力的线程上的, 与UI线程无关
若是需要点窜UI控件, 则必需委托给调剂器this.Dispatcher进行, 否则的话会提醒界面资本被其他线程所拥有而无法更新界面

推荐阅读