Я хочу создать метод, который будет ждать, пока не будет загружен документ.Webrowser - ожидание загрузки документа
У меня есть что-то вроде этого:
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
, она блокирует навигацию и ничего не происходит.
Я не понимаю - что именно вы спрашиваете с приведенным выше кодом? Какая у вас проблема? –
Проблема в том, что webBrowser.Navigate() не блокирует поток (я хочу что-то вроде webClient.DownloadString («www.google.pl») - он блокирует текущий поток). – Yozer