WebBrowser控件导致整个应用程序无响应

我有一个带有嵌入式Web浏览器的C#.NET 3.5应用程序。 浏览器旨在指向远程站点(而不是本地的任何东西)。 一切正常,但当页面响应缓慢时,这会导致整个应用程序无响应,直到页面加载完毕。

我不介意浏览器在做它的事情时没有反应,但是应用程序也远非理想。

有没有好办法防止这种情况发生? 在单独的线程上运行WebBrowser是否有益 – 这有点超出我现在的技能组合,我不认为WebBrowser控件真的喜欢multithreading? 但是如果需要,我可以学习。

有关如何在单独的线程上运行它的解决方案,请参阅此问题的答案#2: BackgroundWorker和WebBrowser Control

您也可以阅读答案#1,它解释了您所看到的行为(WebBrowser控件阻止UI thead)。

碰巧我发现这个的根本原因是我的应用程序以管理员身份运行。 使用Internet Explorer时出现了完全相同的问题 – 因此,我只是重写了需要管理员权限的位,所以我现在不再看到原始问题了。

这只发生在win7上;我使用fiddler2来监控HTTP / HTTPs流量。我找到嵌入式Web浏览器来访问这个网站: http : //ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl。 cab?50ff94e72ac1a75c;解决方案如下: http : //support.microsoft.com/kb/2730040/en (方法2或方法3)。你可以试试。另外你可以使用.net framework4.0,那么你的避风港这个问题。