2012-06-11 12 views
5

Ich habe eine C# .NET 3.5-Anwendung mit einem eingebetteten Webbrowser. Der Browser ist so konzipiert, dass er auf entfernte Sites zeigt (anstatt auf alles, was lokal ist). Alles funktioniert gut, aber wenn die Seite zu langsam reagiert, reagiert meine gesamte Anwendung nicht mehr, bis die Seite geladen wird.WebBrowser Control bewirkt, dass ganze Anwendung nicht mehr reagiert

Ich habe nichts dagegen, dass der Browser nicht reagiert, während es seine Sache macht, aber die Anwendung geht auch ist weit von ideal.

Gibt es einen guten Weg, dies zu verhindern? Wäre es von Vorteil, den WebBrowser in einem separaten Thread zu betreiben - das ist ein bisschen über meine Fähigkeiten hinaus und ich denke nicht, dass das WebBrowser-Steuerelement Multithreading wirklich mag? Aber ich kann lernen, wenn es nötig ist.

+0

Haben Sie Ihr Fehlerprotokoll überprüft? Möglicherweise gibt es einen Hinweis darauf, warum Ihre Anwendung nicht mehr reagiert. Es ist schwierig, ein Problem mit so wenig Informationen zu diagnostizieren. – Eric

+0

@autumyst Ich glaube nicht, dass es ein Problem als solches gibt. Es bleibt nur kurz hängen, während die langsame Website lädt. Wenn dies geschieht, gibt Windows 7 (Zum Beispiel) dem Benutzer die Option zu warten oder zum Ende der Aufgabe, die nicht gut aussieht. – Dan

+0

Eine wichtige Frage - warum verwenden Sie das WebBrowser-Steuerelement? Was versuchst du zu machen? Es ist eine sehr umständliche Kontrolle, und je nach Ihren Bedürfnissen könnte es einen besseren Weg geben. – riwalk

Antwort

2

Siehe Antwort # 2 auf diese Frage nach einer Lösung, wie es auf einem separaten Thread ausführen: BackgroundWorker and WebBrowser Control

Genauso gut könnte man Antwort # 1 zu lesen, ist es, das Verhalten erklären Sie sehen (WebBrowser-Steuerelement Blockierung UI thead).

+0

Danke, ich schaue mir das an – Dan

+0

Akzeptieren, weil dies die richtige Antwort ist, obwohl ich es am Ende nicht verwenden musste – Dan

0

Als ich fand, dass der Grund dafür war, dass meine Anwendung als Administrator ausgeführt wurde. Genau das gleiche Problem wurde bei der Verwendung des Internet Explorers beobachtet - als solche habe ich einfach die Bits umgeschrieben, die Administratorrechte benötigten, so dass ich das ursprüngliche Problem jetzt nicht mehr sehe.

0

dies geschah nur auf win7, ich Fiddler2 HTTP/HTTPS-Datenverkehr zu überwachen verwenden .Ich eingebetteten Web-Browser, um diese Web zu besuchen zu finden: http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab?50ff94e72ac1a75c;the Lösung ist wie folgt vor: http://support.microsoft.com/kb/2730040/en (Methode 2 oder Methode 3) .Sie können it.other versuchen Sie können .net framework4.0 verwenden, dann haben Sie dieses Problem nicht.

Verwandte Themen