如何在另一个进程中运行WebBrowser,但在原始应用程序中

时间:2018-01-30 13:36:49

标签: c# .net internet-explorer webbrowser-control

我的应用程序类似Chrome或Firefox,允许使用WebBrowser对象创建和销毁标签。这是非常粗略的描述,但接近了解应用正在做什么。

问题是WebBrowser对象基于Internet Explorer(IE),如果封闭站点有一些JS代码或图像(占网站的99.99%),IE在.Net非托管内存深处有内存泄漏。 / p>

我尝试了来自网络的所有解决方案,最后我得到了MS的确认,这个问题基于IE架构,并且无法从代码角度(对象清理或调用GC)修复任何技巧。 所以,我开始以不同的方式思考解决问题。

问题在于.Net WebBrowser对象和.Net的非托管内存中发生的泄漏在WebBrowser对象被破坏时无法正确清除。但它发生在我的应用程序进程ID中。

所以,我正在寻找一些选项来为我的应用程序和WebBrowser对象分离内存(在一个单独的进程中创建它)。我知道Chrome的工作方式类似(每个标签一个进程),这使得这个想法至少变得现实。但我无法找到任何信息如何在我的应用程序中显示WebBrowser,就像以前一样。

提前感谢您的帮助!

0 个答案:

没有答案