我想让一个应用程序执行几个指令来传递以下指令,必须等待几毫秒。
这样:
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/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
快乐编码。。。。。!