D'attente pour WebBrowser contenu ajax

Je veux mettre en pause l'exécution de mon fils jusqu'à ce qu'un particulier div a été chargé via ajax dans un WebBrowser instance. Évidemment, je peux vérifier en continu la présence de cette div en faisant quelque chose comme:

while (Browser.Document.GetElementById("divid") == null) { Thread.Sleep(200); }

Cependant, le sommeil le thread que le Navigateur est en entre les boucles que bloque le navigateur de charger le contenu dans la première place. Il semble, donc, que j'ai besoin pour exécuter le Browser.Navigate méthode dans un thread séparé - je peux alors continuer à vérifier/attendez que la présence de la div, tandis que le WebBrowser instance continue à charger l'URL que j'ai demandé de le faire.

Mes tentatives de cela, cependant, ont échoué et j'avais de la valeur de l'entrée sur comment je devrais aller à ce sujet. Je pensais simplement l'envoi d'un nouveau thread avec new Thread(() => { Browser.Navigate(url); }); pourrait fonctionner, mais après cela, rien de charges et le Navigateur.ReadyState reste comme "non Initialisé". Je suppose que je ne suis malentendu comment le faire correctement le filetage des procédures comme ça avec C# et serait la valeur de quelques conseils!

Reportez-vous à contrôle WebBrowser = attendre pour le chargement de la page pour valider. Il dit appel System.Windows.Forms.Application.DoEvents ().

OriginalL'auteur JoeR | 2010-09-25