close

有兩種方式...這兩種方式都不會去影響到當前的主執行續(Thread)

第1種:使用Thread,但不是很準確,故不建議

第2種:使用Threading.Timer準確,建議使用此方法

兩種方法所使用的時間單位皆為毫秒(ms)!!

 

P.S.使用static的原因就只是Main使用static,而我又懶得建立自身物件去呼叫

 

先示範第一種


private static int count = 1;

        static void Main(string[] args)
        {
            Thread thread = new Thread(TimerTask);//建立Thread物件並設定要被執行的函數
            thread.Start();//開始執行

            while (count <= 3) ;
            Console.ReadKey();
        }

        private static void TimerTask()
        {
            while(count <= 3)
            {
                Thread.Sleep(1000);//延遲1000ms,也就是1秒
                Console.WriteLine("\n" + count);
                count++;
            }
        }


 

再來是第二種


private static int count = 1;

        static void Main(string[] args)
        {
            //建立TimerCallback物件,並設定當計時到時要執行的函數
            TimerCallback callback = new TimerCallback(TimerTask);

            //建立Timer物件,第一個參數為TimerCallback,第二個參數表示要傳給callback的物件
            //第三個參數代表要多久之後執行(延遲啟動),第四個參數代表每隔多久執行一次(延遲時間)
            //該物件一旦產生就立刻計時了!

            Timer timer = new Timer(callback, null, 1000, 1000);

            //可以使用以下的方式重新設定延遲啟動和延遲時間
            //timer.Change(2000, 2000);

            while (count <= 3) ;
            timer.Dispose();//停止計時

            Console.ReadKey();
        }

        //TimerCallback函數使用委派的方式達成,所以傳入和傳出的參數有固定格式
        private static void TimerTask(object obj)
        {
            Console.WriteLine(count.ToString());
            count++;
        }


 

arrow
arrow
    全站熱搜

    Yang 發表在 痞客邦 留言(1) 人氣()