有兩種方式...這兩種方式都不會去影響到當前的主執行續(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++;
}
留言列表