Ich möchte die Ausführung meines Threads anhalten, bis ein bestimmtes Div über Ajax in eine WebBrowser-Instanz geladen wurde. Natürlich kann ich kontinuierlich überprüfen auf das Vorhandensein dieses DIV tut so etwas wie:Warten auf WebBrowser ajax Inhalt
while (Browser.Document.GetElementById("divid") == null) { Thread.Sleep(200); }
jedoch den Faden schlafen, dass der Browser ist in zwischen den Schleifen nur blockiert den Browser von tatsächlich den Inhalt in erster Linie zu laden. Es scheint daher, dass ich die Browser.Navigate
Methode in einem separaten Thread ausführen muss - ich kann dann weiter überprüfen/auf das Vorhandensein des div warten, während die WebBrowser-Instanz weiterhin die URL lädt, die ich darum gebeten habe.
Meine Versuche dazu sind jedoch gescheitert und ich würde Wert darauf legen, wie ich darüber gehen sollte. Ich dachte, dass das Versenden eines neuen Threads mit new Thread(() => { Browser.Navigate(url); });
funktionieren würde, aber nachdem das getan wird, lädt nichts und der Browser.ReadyState bleibt als "Uninitialized". Ich gehe davon aus, dass ich falsch verstehe, wie man mit C# Verfahren richtig einfädeln kann und würde einen Ratschlag wertschätzen!
Siehe [WebBrowser control = warten für das Laden der Seite zu vervollständigen] (http://social.msdn.microsoft.com/Forums/windows/en-US/9e5d265c-8771-433c-a2aa-91b4eeb1d684/webbrowser-control-wait-for-page-load-to -komplett in einer Baugruppe? Forum = winforms). Es heißt - rufen Sie 'System.Windows.Forms.Application.DoEvents()' auf. – Lijo