我想创建将等到文档未加载的方法。
我有类似的东西:
WebBrowser webBrowser = new WebBrowser();
MyClient client = new MyClient(webBrowser);
client.LogIn("test", "omg"); //block thread
client.NotImplemented(); //i'm already logged;
class MyClient
{
bool Started;
WebBrowser webBrowser;
public MyClient(WebBrowser wb)
{
webBrowser = wb;
webBrowser.DocumentCompleted += (sender, e) =>
{
if (e.Url == webBrowser.Url)
{
Started = false; //page loaded
}
};
}
public void LogIn(string login, string password)
{
this.Navigate("mymagicsite.com");
}
private void Navigate(string url)
{
webBrowser.Navigate(url);
Started = true;
while(Started)
Task.Delay(50);
}
}
当我将调用 LogIn 方法时,我想“阻止”我的线程。问题出在Task.Delay
,它阻塞了 Navigate 并且没有任何反应。