我怎么能延迟C#?

时间:2012-02-09 14:47:19

标签: c# windows function delay

我想让一个应用程序执行几条指令来传递以下指令必须等待几毫秒。

这样:

while(true){

  send("OK");
  wait(100); //or such delay(100);

}

C#中有可能吗?

8 个答案:

答案 0 :(得分:18)

Thread.Sleep(100);会做到这一点。这可以在System.Threading命名空间中找到。

答案 1 :(得分:8)

您可以使用Thread.Sleep()方法暂停当前线程X毫秒:

// Sleep for five seconds
System.Threading.Thread.Sleep(5000);

答案 2 :(得分:6)

要睡眠100毫秒,请使用Thread.Sleep

While(true){    
  send("OK");
  Thread.Sleep(100);
}

答案 3 :(得分:5)

Thread.Sleep(毫秒)应该停止该秒的应用程序。阅读MSDN中的Thread.Sleep。

答案 4 :(得分:5)

可以使用Thread.Sleep,但我强烈反对它,除非你A)知道它是合适的事实并且B)没有更好的选择。如果您可以更具体地了解您想要实现的目标,那么可能会有更好的替代方案,例如使用events和处理程序。

答案 5 :(得分:4)

是的,您可以使用Thread.Sleep method

while(true)
{
  send("OK");
  Thread.Sleep(100); //Sleep for 100 milliseconds
}

然而,睡眠通常表示设计决策不理想。如果可以避免,我建议这样做(使用回调,用户模式等)。

答案 6 :(得分:2)

这将是一个更好的选择,因为它不会锁定当前的thead并使其无响应。

创建此方法

    async System.Threading.Tasks.Task WaitMethod()
    {
        await System.Threading.Tasks.Task.Delay(100);
    }

然后像这样打电话

    public async void MyMethod()
    {
        while(true)
        {
            send("OK");
            await WaitMethod();
        }
    }

请勿在调用延迟的方法中伪造异步!

For more info see this page I found when trying to do a similar thing

答案 7 :(得分:0)

Thread.Sleep()是解决方案。它可以用来等待一个线程,直到其他线程完成它正在工作 OR 执行一条指令后,有人想在执行后面的语句之前等待一段时间。 它有两个重载方法。第一个采用int类型的milisecond参数,而第二个采用timespanpan参数。 1 Milisecond=1/1000s 1 second=1000 Miliseconds 假设有人想要等待10秒钟代码就会....

System.Threading.Thread.Sleep(10000);

有关Thread.Sleep()的更多详情,请访问http://msdn.microsoft.com/en-us/library/274eh01d(v=vs.110).aspx

快乐编码.....!