2017-08-28 174 views
1

我想在循環中添加1秒的延遲。爲循環添加1秒的延遲?

我所做的是:

public void Delay() 
{ 
    DateTime end = DateTime.Now.AddSeconds(1); 

    while (DateTime.Now <= end) 
    { 
     //code here 
    } 
} 

,我添加延遲()在我的循環。

這是做這件事的最好的/可接受的方式,或者可以有人推薦更好的方法嗎?

+1

如果你能負擔得起停止整個線程,你可以使用'Thread.Sleep(1000)'。它停止執行線程1000毫秒。 –

+1

請記住,像您一樣建議Thread.Sleep(1000)將阻止當前正在運行的線程。如果這不是問題(如果這是唯一的線程),沒有理由不這樣做。 – Veverke

+0

@Veverke我會說這不是一個問題,如果該線程沒有做別的。 –

回答

4
Thread.Sleep (1000); 

這1000是持續時間以毫秒爲單位。

0

這裏的方式做到這一點:

public void Delay(int seconds) 
{ 
    //DateTime end = DateTime.Now.AddSeconds(1); 
    //while (DateTime.Now <= end) 
    //{ 
    //} 
    System.Threading.Thread.Sleep(seconds * 1000); 
} 
+0

皮耶羅,如果你想抽象毫秒,只處理秒,沒有必要照顧轉換,睡眠有一個超載,接受TimeSpan。同樣可以直接用'Thread.Sleep(TimeSpan.FromSeconds(1));'完成。 – Veverke

+0

我不知道 –

+1

謝謝。它的工作現在。 –

1

嘗試了Thread.Sleep();

using System.Threading; 
Thread.Sleep(1000); // 1000 milliseconds i.e 1sec