请提出一种方法或函数,让代码等待几秒钟后再继续。我知道thread.sleep方法,但它冻结了整个程序。C#等待线程不休眠并冻结程序。
我想暂停一段时间,让程序在下一部分恢复之前完成其程序。目前,该计划执行的所有程序过于快速,无法遵循其他程序。
这里是我的代码:
{
w1.Document.GetElementById("lst-ib").InnerText = "some text";
w1.Document.Forms[0].InvokeMember("submit");
//Some code here that would create a 1 second pause before downloading html.
//Thread.sleep(2000) is not suitable.
string html = new WebClient().DownloadString(w1.Url.ToString());
您可以使用'async'编程模式,在这种情况下,您可以编写'await Task.Delay(2000);'并完成它。然而,最好的是如果你学会了所有的模式,而不仅仅是等待的部分。 – AgentFire
不要做'新的WebClient()。DownloadString(w1.Url.ToString())'''WebClient'是一次性的,需要在使用后处置。如果你像这样链接,你可以创建一个内存泄漏。 – Enigmativity
*此时程序执行的所有程序过于快速,无法执行其他程序。*这听起来像是一种设计气味。你不应该睡觉只是为了让其他组件赶上。也许描述你想要达到的目标将帮助我们理解如何为你提供帮助。 –