我正在開發一個.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