我正在开发一个.NET 2.0 WinForms应用程序。它以前包括标准的Microsoft ActiveX WebBrowser控件,但我正在研究替代方法。.NET WebBrowser控件的替代品?
我需要做的:
使用WebBrowser作为应用标准的Web浏览器控件
可以使用它在后台too-例如,创建控制,渲染网页并将结果输出到图像(使用.DrawToBitmap),而不将控件附加到表单上。
钩到在lifecycle-各种活动主要DocumentCompleted。
网页可以被加载(或重新加载)每隔30秒左右的时间,可以通过控制的新实例,或使用现有的控制。该应用程序可以保持长时间无限期地运行。
必须使用.NET 2.0。没有3.0+或WPF的东西。
只有三个控件,我已经能够到目前为止都具有阻止我前进,而关键问题:寻找
微软的ActiveX web浏览器 - 拥有庞大的内存泄漏,使它不适合长时间运行。
WebKit.NET - 据我已经能够建立这个必须在任何渲染完成之前附加到窗体,使其对缩略图生成片无用。也似乎遭受内存泄漏。
GeckoFX - 最适合我的,但不能正确支持线程(这是缩略图生成管的关键)。
其他的选择吗?
你说的“不正确地支持线程”是什么意思,我认为一些解决方法可以创建 – Andrey 2011-03-30 19:07:32
有一个Xpcom.Initialize调用,只能在GeckoFX调用一次。从我已经能够收集的内容中,一旦你在一个线程中调用该方法,GeckoWebBrowser控件就会被绑定到该线程 - 在任何其他线程中使用GeckoWebBrowser进行任何操作都会导致COM错误。 – MisterZimbu 2011-03-30 19:27:35
作为一种解决方法,您可以产生将封装GeckoFX的进程 – Andrey 2011-03-30 19:30:25