Contrôle du filetage et du navigateur Web

Je suis très nouveau dans le filetage. Je commence un fil comme ça:

Thread t_main; t_main = new Thread(main_building_stuff); t_main.Start(); 

Et à un moment donné, je veux que main_building_stuff récupère des données d’une page Web chargée dans un contrôleur de navigateur Web dans le fil principal.

Je le fais avec ce morceau de code:

 HtmlElement lit = webBrowser1.Document.GetElementById("buildqueue"); 

Mais cela entraîne une erreur … InvalidCastException (la dissortingbution spécifiée n’est pas valide)

Quelle est la bonne façon de recevoir les données du navigateur Web?

Quelqu’un qui a répondu à la question, a donné la bonne réponse. Mais pour une raison quelconque, il l’a supprimé, alors merci, mais je ne me souviens pas de votre nom …

C’est le morceau de code qui a fonctionné:

 webBrowser1.Invoke(new Action(() => { HtmlElement lit = webBrowser1.Document.GetElementById("buildqueue"); result = "whatever"; })); 

Hmmm.

System.Windows.Forms.HtmlDocument.GetElementById() renvoie définitivement un System.Windows.Forms.HtmlElement .

Qu’est-ce qui se passe si vous changez

 HtmlElement lit = webBrowser1.Document.GetElementById("buildqueue"); 

à

 System.Windows.Forms.HtmlElement lit = webBrowser1.Document.GetElementById("buildqueue"); 

Avez-vous toujours une erreur de casting invalide?

Je sais juste qu’il existe plusieurs classes couramment utilisées appelées HtmlElement et je me demande si vous en avez importé une à partir d’un autre espace de noms.