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.