Witam,
Piszę niewielki program narzędziowy. Doszedłem do miejsca w którym muszę poczekać na załadowanie strony przez kontrolkę WebBrowser i dopiero wtedy wtedy mogę wykonywać kolejne zadania. Pierwszym pomysłem było najprostsze:
webBrowser1.Navigate("...");
while (!(webBrowser1.ReadyState == WebBrowserReadyState.Complete))
{
Application.DoEvents();
}
//Tutaj kod który musi czekać na ładowanie
Ogólnie powyższe rozwiązanie woła o pomstę do nieba więc szukam czegoś bardziej poprawnego, eleganckiego i nieblokującego GUI.
Kontrolka WebBrowser dysponuje zdarzeniem *DocumentCompleted * które wydaje się być kluczem do rozwiązania, ale jak sprawić by po wykonaniu tego zdarzenia sterowanie wróciło w oczekiwane miejsce ?
Myślałem nad zastosowaniem async/await ale jakoś nie bardzo łączy się to z obsługą powyższego zdarzenia.