Почему-то не могу дождаться завершения загрузки веб-страницы, бесконечный цикл. В чем моя проблема? Использовал следующий код:
//Часть кода из главной функции
load = false;
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentLoad);
wb.Navigate(@"https://instagram.com/");
while (!load) { Thread.Sleep(40); };
И код обработчика события загрузки страницы:
public void DocumentLoad(object sender, WebBrowserDocumentCompletedEventArgs e)
{
load = true;
}
Вы блокируете поток в котором выполняется Ваш код, в том числе и обработчик DocumentLoad соответственно, load=true не выполняется.
Для обработки завершения загрузки нужно подписаться на событие WebBrowser.DocumentCompleted и код, который зависит от загрузки страницы перенести непосредственно в обработчик события.
Полагаю, что в полном коде есть какие-то действия после цикла и он выглядит примерно так:
load = false;
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentLoad);
wb.Navigate(@"https://instagram.com/");
while (!load) { Thread.Sleep(40); };
//какой-то код, который работает с загруженной страницей
...
public void DocumentLoad(object sender, WebBrowserDocumentCompletedEventArgs e)
{
load = true;
}
Нужно переделать его во что-то вроде:
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentLoad);
wb.Navigate(@"https://instagram.com/");
//здесь больше ничего не делаем
...
public void DocumentLoad(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//какой-то код, который работает с загруженной страницей
}
Продвижение своими сайтами как стратегия роста и независимости