首頁>Program>source

我試圖將webBrowser控制元件嵌入C#winform應用程式中.這听起来很容易.但是我發現,每次呼叫Navigate方法時,webBrowser控制元件都会占用大量記憶體.記憶體永远不会釋放.記憶體使用量越来越大……

網路上的许多人都遇到了完全相同的問题,但是我還没有找到满意的答案.這是到目前為止我發現的關於此問题的最佳讨論:

IE中的記憶體洩漏 web瀏覽器控制元件

一个人建議升級到IE8以解決该問题。

但是,無論使用者是否安裝了最新的IE版本,我都需要一種有效的解決方案.我無法控製使用者環境。

有人知道如何釋放webBrowser控制元件占用的記憶體吗? 有解決方法吗? webBrowser控制元件有替代方案吗?

Update: 我只是做了一些測試.在工作中,我正在執行windows XP和IE6.記憶體没有在那裏增长.呼叫Navigation方法時,記憶體会增加,但過一会儿就会釋放.在家裏,我正在執行Vista,並已升級到IE8.在這裏我也看不到問题了.看来問题是特定於IE7的.因此,该問题應改為"如何在安裝IE7時修複IE webBrowser控制元件中的記憶體洩漏".有人可以確认這个問题是特定於IE7的吗?

最新回復
  • 5月前
    1 #

    -- in class definition [DllImport("KERNEL32.DLL", EntryPoint = "SetProcessWorkingSetSize", SetLastError = true, CallingConvention = CallingConvention.StdCall)] internal static extern bool SetProcessWorkingSetSize(IntPtr pProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize); [DllImport("KERNEL32.DLL", EntryPoint = "GetCurrentProcess", SetLastError = true, CallingConvention = CallingConvention.StdCall)] internal static extern IntPtr GetCurrentProcess();

  • javascript:仅使用網址而不打開新視窗来print網頁?
  • java:為什麼父類和子類都實現相同的介面?