C# 用不那么强烈的东西代替睡眠
因此,我了解到,我以前在C#console应用程序中使用“Thread.Sleep”的解决方案不是一个好的解决方案,因为它会在整个睡眠期间冻结整个线程 既然我不该这么做: 系统线程线程睡眠(250); 那我该怎么办?我希望它是一个单独的声明,而不是包装的东西,因为这会变得非常混乱,非常快。我有很多地方用过线。睡觉。但是很明显,我可以使用整个类来完成它——如果必要的话,我只希望能够像调用普通方法一样调用它 到目前为止,这是我发现最有效的方法:C# 用不那么强烈的东西代替睡眠,c#,C#,因此,我了解到,我以前在C#console应用程序中使用“Thread.Sleep”的解决方案不是一个好的解决方案,因为它会在整个睡眠期间冻结整个线程 既然我不该这么做: 系统线程线程睡眠(250); 那我该怎么办?我希望它是一个单独的声明,而不是包装的东西,因为这会变得非常混乱,非常快。我有很多地方用过线。睡觉。但是很明显,我可以使用整个类来完成它——如果必要的话,我只希望能够像调用普通方法一样调用它 到目前为止,这是我发现最有效的方法: class Tools { private s
class Tools
{
private static async Task _Sleep(int ms)
{
await Task.Delay(ms);
}
public static void Sleep(int ms)
{
var task = _Sleep(ms);
task.Wait();
}
}
我应该用别的东西来代替它吗?很少有真正好的理由使用任何形式的睡眠。 在1000个案例中,有999个是错误的编码。 与其等待任意数量的时间,不如等待所需的确切时间。 例如,您应该使用:
await MyFunction();
或回调/事件处理程序函数,如
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += Wb_DocumentCompleted;
...
private void Wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//do your thing...
}
不要睡觉。在这个问题上没有足够的背景。你根本不需要睡觉