该问题我已在猪八戒高价发帖悬赏了http://task.zhubajie.com/1919114/非常急迫~ 请大家帮忙~!!

解决方案 »

  1.   

    这是个很难的问题。应该很难有完美的解决办法。不过我试了下我的浏览器http://www.xzwj.org/,反复打开你的测试页面,基本能恢复。因为这个页面算简单页面了。大量FLASH的才真的头疼。
      

  2.   

    我也是想到用SetProcessWorkingSetSize
    原来楼主的代码里已经有了
      

  3.   

    SetProcessWorkingSetSize绝对不是个好主意。好在楼主注释了。
      

  4.   

    new Thread 也是有开销的啊,不是说线程越多越好。推荐是和CPU数量相等的线程数。
      

  5.   

    new Thread 这点开销相对 WebBrowser 这大家伙来说算不得什么了
      

  6.   

    那就不要用 webbrowser 啊,直接用 WebClient 或者 HttpWebRequest 就可以了。
      

  7.   


    我需要的是UI,不是网络通讯。那么多基于IE的浏览器都没有解决这样问题的方法吗?
      

  8.   

    同求解惑,我也遇到这个困扰了,我的 webBrowser,单线程,设置每秒refresh 1次,结果发现内存每秒增加3M,后台过一会儿就2个G了(电脑4个G内存),然后提示内存不足崩溃了,其实我就是想不断刷新一个页面监控上面的几个数字,一旦有我要求的弹框提示,然后直接进行一些操作,不需要之前获取到的历史数据,完全可以每次只缓冲当前页面的东西就行了,结果内存不到一小时溢出一次。。
      

  9.   

    我也在找答案,在Form2中加个一个 webBrowser1.Navigate("http://www.baidu.com");  然后Form1中去new他,每new一次线程就增加十几条,释放了也没作用。求大神解答嘛
      

  10.   

    碰到一样的问题,在msdn上找到了答案,我贴出来给大家看看,我用了反正完美解决了
    https://social.msdn.microsoft.com/Forums/ie/en-US/88c21427-e765-46e8-833d-6021ef79e0c8/memory-leak-in-ie-webbrowser-control?forum=ieextensiondevelopment-- 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();-- code to call when you want to reduce the memory            IntPtr pHandle = GetCurrentProcess();
                SetProcessWorkingSetSize(pHandle, -1, -1);