2017-08-28 16 views
1

ループ内に1秒の遅延を追加しようとしています。私がやっていることループに1秒の遅延を追加しますか?

は次のとおりです。

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

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

と私は私のループで()の遅延を追加します。

これは、これを実行するための最良の/受け入れ可能な方法ですか、誰かがより良い方法をお勧めすることができますか?

+1

スレッド全体を停止する余裕があれば、 'Thread.Sleep(1000)'を使うことができます。スレッドの実行を1000ms停止します。 –

+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

Pieroは、ミリ秒を抽象化して秒単位で処理したい場合、変換を処理する必要はありません。スリープにはTimeSpanを受け入れるオーバーロードがあります。同じことが 'Thread.Sleep(TimeSpan.FromSeconds(1));'で直接達成されます。 – Veverke

+0

私はそれを知らなかった –

+1

ありがとう。今働いている。 –

1

は(のThread.sleep試してみてください)。

using System.Threading; 
Thread.Sleep(1000); // 1000 milliseconds i.e 1sec 
関連する問題