首頁 > 軟體

C#中Timer定時器類的簡單使用

2022-05-19 13:00:12

System.Timers.Timer

定時器就是經過固定時間,執行固定任務。

定時器簡單使用

設定初始屬性

初始化定時器間隔多少時間執行

System.Timers.Timer timer = new System.Timers.Timer(double interval);

interval是毫秒數。比如最後的毫秒數設為1000就是一秒。

也可以用無參建構函式建立後,用物件.interval設定。

設定執行的事件–Elapsed

timer.Elapsed += 需要方法名稱。

經過上面設定好的毫秒後,執行事件。比如我要在指定時間內執行方法MyMethod,使用該引數Elapsed進行指定。timer.Elapsed += MyMethod。

該方法有且僅有兩個引數MyMethod(Object source, ElapsedEventArgs e) ,且返回值為void。 其中的ElapsedEventArgs 是給Elapsed事件提供資料的物件。
當然了,你還可以再MyMethod中呼叫其他的方法。

設定是否重複執行–AutoReset

該引數的值型別為bool,預設為false。
如果為false,該定時器只會在第一次經過指定時間執行一次Elapsed方法,後續再經過指定時間間隔就不再執行。

如果為true則每經過時間間隔就執行一次該方法。

設定是否觸發Elapsed事件–Enabled

該引數的值型別為bool,預設為false。
如果為false,就算經過指定事件也不觸發Elapsed事件。
若為true,經過指定時間,執行Elapsed事件。

簡單範例–借用官方範例

using System;
using System.Timers;

public class TimerTest
{
    //定義定時器
    private static System.Timers.Timer aTimer;

    public static void Main()
    {
        //初始化定時器屬性
        SetTimer();

        Console.WriteLine("n鍵盤輸入即可退出...n");
        Console.WriteLine("定時器開始於 {0:HH:mm:ss.fff}", DateTime.Now);
        Console.ReadLine();//保持程式持續執行
        aTimer.Stop();//停止定時器
        Console.WriteLine("n停止定時器...n");
        aTimer.Dispose();//釋放資源
        Console.WriteLine("退出...");
        Console.ReadLine();
    }

    private static void SetTimer()
    {
        Console.WriteLine("初始化當前的定時器");
        // 建立一個兩秒一次的定時器
        aTimer = new System.Timers.Timer(2000);
        // 設定事件
        aTimer.Elapsed += MyMethod;
        aTimer.AutoReset = true;
        aTimer.Enabled = true;
        Console.WriteLine("設定完畢");
    }


    public static void A()
    {
        //在這裡寫真正的操作
        Console.WriteLine("我定時執行的操作A");
    }


    private static void MyMethod(Object source , ElapsedEventArgs e)
    {
        //我真正需要執行的操作
        Console.WriteLine("當前時間 {0:HH:mm:ss.fff}", DateTime.Now);
        Console.WriteLine("ElapsedEventArgs攜帶的資料 {0:HH:mm:ss.fff}", e.SignalTime);
        A();
    }
}

結果

到此這篇關於C#中Timer定時器類的簡單使用的文章就介紹到這了,更多相關C#中Timer定時器類內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com