c#等待不使线程休眠和冻结程序
本文关键字:冻结 程序 休眠 线程 等待 | 更新日期: 2023-09-27 18:02:17
请建议一种方法或函数使代码在继续之前等待几秒钟。我知道那个线索。方法,但它会冻结整个程序。
我想设置一个短暂的暂停,让程序在继续执行下一部分之前完成它的过程。目前,程序执行所有程序的速度太快,其他程序无法跟上。
下面是我的代码: {
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());
我猜W1
是一个WebBrowser控件。不要提交表单然后休眠,而是使用控件公开的事件来知道文档已经准备好了。
您可以使用DocumentCompleted
事件来知道WebBrowser已经完成加载,然后您可以访问新的URL的DOM。
如果你多次导航,你只需要保持一些状态来知道你在过程中的位置。
我将使用BackgroundWorker
进行下载,在此线程中,您将在下载前使用Sleep
功能。