C#中timer的用法


作用:

用於背景進程中。通過引發Timer事件,Timer控件可以有規律的隔一段時間執行一次代碼。也就是,你可以根據你自己的需要,給Timer控件設置時間,Timer每隔這段時間,就執行一次代碼。

屬性: 

  Enabled     控制當前Timer控件是否可用
            timer1.Enabled=false;不可用

            timer1.Enabled=true;可用

  Interval     主要是設置timer2_Tick事件的時間,單位為毫秒

           timer1.Interval=1000;. 1秒=1000毫秒

Tick事件:

      每經過Interval屬性指定的時間間隔時發生一次.

每1小時提示用戶,需要休息了
復制代碼
 timer1.Interval=3600000;                     
  //3600000毫秒即3600秒,即1小時 private void timer1_Tick(object sender,System.EventArgs e) { timer1.Enabled=false;
MessageBox.show("需要休息了,開機已經2小時了");
timer1.Enabled=true;     
//如果不先把timer1設成false,對話框會一直彈下去。
}
復制代碼

 

到9:00提示去上廁所,把timer2.Interval=60000;//1分鍾

復制代碼
private void timer2_Tick(object sender, System.EventArgs e){

  //得到現在的時間
  string cesuotime=DateTime.Now.DateTime.Now.ToShortTimeString();

  if(cesuotime.equles("9:00")){

     timer1.Enabled=false;

     MessageBox.show("該去上廁所了");

     timer1.Enabled=true;//如果不先把enabled設置成false對話框會一直彈下去
  }
}
復制代碼

 

 一定時間間隔刷新函數   

( 讀取上次刷新時間與當前時間差,如果達到指定的時間差隔刷新函數,類似於Windows操作系統的定時屏保 )

復制代碼
timer1.Interval=3000; //指定三秒刷新一次
      

System.DateTime time2 = System.DateTime.Now;  //獲取當前時間

 System.TimeSpan span =time2-time1;           //計算與上次執行時間的時間差

 if (span.Minutes > 5)      //這時定時五分鍾刷新一次,
{
         iniFormMain();    //執行刷新主界面函數
}

        //在主界面函數  iniFormMain() 中定義時間變量time1為當前時間
        //time1 = System.DateTime.Now;        
復制代碼

 

timer1.Start( ); 啟動計時器,屬性Enabled = true 完全等同於調用Start()方法

timer1.Stop( ); 關閉計時器, Enable = false完全等同於調用Stop()

 

復制代碼
using System.Windows.Forms;
// namespace
public partial class Form1 : Form
{
    public Form1() 
    {
        InitializeComponent();  // 這條語句是IDE自動生的
        timer1.Interval = 1000; // 設置時間間隔為1000ms,默認為100ms
        timer1.Start();  // 啟動計時器, (默認不啟動)
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (timer1.Equals(timer2)) // 判斷兩個Timer是否相同,這語句沒什么用
            ;
        else
        {
            timer1.Stop(); //關閉計時器
            MessageBox.Show("two timers are not equal.");
            Close();  // 最后關閉窗口
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM