我怎样才能用C#设置延迟



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

这样:

while(true){
  send("OK");
  wait(100); //or such delay(100);
}

这在C#中可能吗?

Thread.Sleep(100);将发挥作用。这可以在System.Threading命名空间中找到。

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

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

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

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

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

Thread.Sleep(毫秒)应停止应用程序一秒钟。在Thread上阅读。在MSDN中睡眠。

是的,您可以使用Thread.Sleep方法:

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

然而,睡眠通常是次优设计决策的指示。如果可以避免,我建议这样做(使用回调、订阅者模式等)。

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

创建此方法

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

然后像这样打

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

不要在调用延迟的方法中伪造异步!

有关更多信息,请参阅我在尝试做类似的事情时发现的这个页面

Thread.Sleep()是解决方案。它可以用来等待一个线程,直到另一个线程完成它的工作或者在执行一条指令后,有人希望在执行后面的语句之前等待一段时间。它有两种重载方法。第一种采用int类型的毫秒参数,第二种采用时间跨度参数。1 Milisecond=1/1000s1 second=1000 Miliseconds假设如果有人想等待10秒,代码将是…

System.Threading.Thread.Sleep(10000);

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

快乐编码。。。。。!

最新更新