当前位置:编程学习 > C#/ASP.NET >>

webbrowser 内存多次运行 占内存到1.7G 怎么解决

WebBrowser  占得内存释放不了
        private void timer2_Tick(object sender, EventArgs e)
        {
                        

                    wbs1 = new WebBrowser();
                    wbs1.Navigate(@"http://www.taobao.com");
                    int h = 0;
                    while (h < 10)
                 
                    {
                          System.Threading.Thread.Sleep(500);
                           h++;
                        Application.DoEvents();

                    }
                  
                               
                   wbs1.Dispose();
                   wbs1 = null;
       }     --------------------编程问答-------------------- 我以前 也遇到过 这个问题 ,我感觉是 打开浏览器占用的内存而不是 控件占用的
--------------------编程问答-------------------- 在释放WebBrowser的地方,加上这个有点用
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
private static extern bool SetProcessWorkingSetSize(IntPtr pProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);

IntPtr pHandle  = System.Diagnostics.Process.GetCurrentProcess().Handle;
SetProcessWorkingSetSize(pHandle, -1, -1);

另外可以手动回收以下垃圾
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();

虽然不能回到navigate之前的状态,但基本可以接受了,你可以试下效果看看 --------------------编程问答--------------------  IntPtr pHandle  = System.Diagnostics.Process.GetCurrentProcess().Handle;
SetProcessWorkingSetSize(pHandle, -1, -1);
没什么效果啊 --------------------编程问答-------------------- 别瞎忙了,GC是没有用的,这是JS内存泄漏造成的,唯一的办法就是重启进程。

实际上,WebBrowser这种客户端控件本身应该尽量避免在非用户交互的场合使用。 --------------------编程问答-------------------- WebBrowser就是这样,无解,可以换用火狐内核的浏览器,可以参考geckoFX,这是.net可用的火狐浏览器内核控件 --------------------编程问答-------------------- WebBrowser 感觉还不完美 --------------------编程问答-------------------- WebBrowser  实质是对IE内核的一种封装

如果不是与用户交互,应该使用WebRequest/WebResponse以及这两个抽象基类的派生子类来进行http交互 --------------------编程问答--------------------
引用 4 楼 caozhy 的回复:
别瞎忙了,GC是没有用的,这是JS内存泄漏造成的,唯一的办法就是重启进程。

实际上,WebBrowser这种客户端控件本身应该尽量避免在非用户交互的场合使用。
涨知识
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,