2017-08-28 129 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