c#程序中,webbrowser 加载网页很多次后内存几乎占满卡死。怎么释放资源?

c#程序中,webbrowser 加载大量网页后内存几乎占满卡死。怎么释放资源?百度查了些帖子说:这个是webbrowser的内存泄露问题,可用办法是:升级ie到8以上,还有用kernel32.dll的,试了不成功,谁有试成功的经验?

0

1个回答

坦率地说没有什么好办法,开两个进程,作为webbrowser的进程每次执行一次退出,开新进程再继续

0
majiancumt
majiancumt 谢谢!我用你的方法做
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
今天思考了一下, 也许 webbrowser 为何不释放内存了.
<br />前段时间, 需要用 微软的IE控件做个东西, 方便的不用被防火墙阻止<br /> <br />但是发现IE控件有个毛病, 你这个进程调用了他, 打开了一个巨消耗内存的网页后, <br />然后你网页关闭 或者 跳转到空白页,  他的内存依然占用在那里<br />因为是IE的问题, 至今无人解决, 没办法, 只能通过另外做个独立的执行程序, 在新的进程里面, 释放IE. (办完事退出进程)<br /> <br /> <br />虽然微软可爱的给你提供一个IE控件+activex, 方便n多事情.,
C#中的webBrowser控件加载网页时实现进度显示
由于网页较大,在软件中用webBrowser加载时,经常加载好半天,给人的感觉就是一片空白。所以必需要用进度条来解决了,用c#中提供的progressBar1实现起来就很简单。核心实现代码:以下为引用的内容: private void Fmain_Load(object sender, EventArgs e)        {          Uri strurl
WebBrowser隐藏后自动销毁的BUG以及解决办法
程序主界面上有个浏览器控件,里面是google地图,需要点击一个按钮后隐藏浏览器控件,显示其他界面,而且要做到还可以切换到原来的地图上。 一开始只是在浏览器上覆盖了一个图片控件,没有隐藏浏览器,后来发现这样不行,鼠标移动到原来浏览器控件的位置上时, 会变成“小抓手”(google地图上移动地图的抓手)。 后来切换到其他界面时用ShowWindow将浏览器隐藏,但是出问题了,切换回来时浏览器就
关于C#的WebBrowser内存占用太大的解决办法
关于C#的WebBrowser内存占用太大的解决办法
webbrowser防止界面假死(停止五秒,遍历循环网址)
private void button2_Click(object sender, EventArgs e)         {             webBrowser1.Navigate("http://www.baidu.com");             Thread NewThread = new Thread(new ThreadStart(NN));
WebBrowser 在多线程中,无法释放内存
第一种: namespace WebBrowserMemoryTest {     public partial class Form1 : Form     {         private int _Pages;         public Form1()         {             InitializeComponent();
C# Webbrowser使用加载页面多少了内存泄露问题解决方法汇总
[C#]有关WebBrowser内存使用增加问题     在Windows程序开发中,使用了Webbrowser 控件,陆续发觉该控制存在着不少的问题,当中最严重的是他胃口太好太大,每load一个页面便会吃掉十来M的内存。 Webbrowser是非托管代码,而我开发时用了托管代码,一开始在这方面进行了优化,发现效果没什么改善。 后一查资料才发现病根 Microsoft的内存溢出b
C#的数据库应用如何解决内存消耗太大的问题呢?
本来是个帖子,但是问的问题没有得到实际的答案。所以干脆放到Blog上来好了,当作长期的一个题目。这样如果有人看的话,也许能够给我一些线索。我用C#做数据库应用的时候,经常遇到的一个问题就是内存消耗特别大。这种情况在作大数据量的数据库导入导出的时候更为明显。说一个常见的数据库导入导出的Case, 大家看看比较合理的办法是什么:环境:有一个数据库SRC, 里面有500万条记录。有A, B, C三个字段
解决Webbrowser定时抓取网页数据时,内存累积不释放的问题
原因:重复的Dim Web As New Webbrowser。感觉这是Webbrowser的Bug,重复的创建不能释放调用Dispose也没用。 解决办法:定义为全局变量,只创建一次。
C#解决WebBrowser DocumentComplete一个网页多次触发
关于DocumentCompleted事件,MSDN给出的解释是在文档加载完毕后执行,但是在我的程序中DocumentCompleted却被多次调用,查了一下资料,大概出现了以下几种情况。 1、WebBrowser载入一个页面后DocumentCompleted事件会执行两次,但这两次的ReadyState状态不一样,分别是Intercative和Complete。而MSDN对这两种状态
webBrowser控件实现网页时实现进度显示
由于网页较大,在软件中用webBrowser加载时,经常加载好半天,给人的感觉就是一片空白。所以必需要用进度条来解决了,用c#中提供的progressBar1实现起来就很简单。 核心实现代码: 以下为引用的内容:  private void Fmain_Load(object sender, EventArgs e)         {           Uri s
WebBrowser多线程带来的麻烦
我们在做采集软件的时候 有些网站通过直接分析html文本是很麻烦的事情 在利用WinForm编程的情况下 有一种更好的方式当然是分析HtmlDocument 然而,这HtmlDoucment并不能直接创建 它必须由 WebBroswer控件Navigate生成一个页面后 才能取得wb.HtmlDocument 然后就可以对HtmlDocument的各元素、
net(c#)在循环语句中执行WebBrowser.Navigate();方法,每次循环等待网页加载完后继续执行的解决方案
最近在写一个小程序的时候,遇到这样的需求:           已知一组网页url地址,想获取每一个网页的html,实际上就是想利用循环语句里面使用WebBrowser来加载每一个网页,然后获取他们的html,           要实现这个功能,想想应该是件很简单的事情,但是在实际操作中却遇到了问题,因为循环语句和WebBrowser的加载不同步的原因,导致前一个           前一
在C#写winform程序时,用webBrowser打开网页时
在C#写winform程序时,用webBrowser打开网页时
WPF webbrowser 判断网页加载完毕
简介:如果网页没有加载完毕就操作网页,将导致出错,所以需要判断网页是否已经加载好了控件名称为webbrowser通过LoadCompleted监听事件来触发函数,这里我直接在界面初始化后进行定义public MainWindow() { InitializeComponent(); this.webbrowser.LoadComple...
C#多线程处理webbrowser及InvokeMember(click)无响应的问题
多线程处理webbrowser的相关问题,并解决触发click事件,js无响应问题。 最近刚好碰上一个需求:循环遍历网页元素,找到innerText为指定的内容时,就模拟人工点击。 解决办法:使用WebBrowser将指定位置的文档加载到 WebBrowser 控件中(注:这里的webbrowser是在拉控件的方式,而不是直接在代码中new) 源码如下: private void lo
c#中使用webbrowser在软件中嵌入网页
<!--google_ad_client = "pub-9528830580198364";/* 文章顶部横幅 */google_ad_slot = "4496963300";google_ad_width = 728;google_ad_height = 90;//-->1.添加webbrowser控件 步骤:a. 自定义工具箱----->com组
(c#) 销毁资源和释放内存
0. 什么是资源? .NET 框架中如何访问资源?所谓的资源就是程序中可利用的数据,譬如:字符串、图片和任何二进制数据,包括任何类型的文件。在面向对象的环境中,每一个类型都标识为某些程序所用的资源,要想使用这些资源,必须为相应的类型分配一定的内存空间。访问一个资源需要如下几个步骤:1)分配内存空间: 调用中间语言(IL)中的newobj指令(使用new操作符时,将产生newobj指令),为某个特定资
Ubuntu Linux出现内存不足导致的死机时处理
Linux 运行某些软件,这些软件运行时需要消耗大量内存,会出现内存不足导致Linux不能响应的情况,此时点击任何按键都是没有用的。处理的方法如下: ctrl+alt+F1,进入tty1,用户名一般是root,密码就是root密码; 然后ps -t tty7 出现一个xorg的PID, kill 这个PID,reboot机器就可以。 最后别忘记删掉那个让你死机的软件,因为你再次运行的话还
使用WebBrowser控件从string以及从stream载入网页的方法
<br />可是直接加载一个string然后按照html格式解析显示出来(当然这个string包含的内容要是html的吧,不然用webbrowser这个控件的意义就不大了),也可以从一个stream加载一个网页。<br />例一:直接从一个string加载一个网页<br />            WebBrowser mybrowser = new WebBrowser();<br />            mybrowser.DocumentText = "<html><body>Please ent
C# WPF 关闭程序 释放资源
WindowsForm里一个Application.Exit();方法就可以关闭应用程序,释放掉资源。 WPF里Application类没有该方法,但是有一个Exit的事件驱动,在WPF应用程序里面关闭程序讲究很多: 在WPF应用程序的关闭是有ShutdownMode属性设置,具有3种枚举类型的值: 1)OnLastWindowClose //应用程序最后一个窗体关闭时关闭应用程序 2)O
C#判断webbrowser页面最终加载完成
C#判断webbrowser页面最终加载完成
webbrowser加载地图网页出现脚本错误解决
对于这个问题,我整整花了一上午的时间来解决,网上关于此问题的解决几乎找不到,于是我就尽可以能的从网上相关问题的答案中获取些灵感,功夫不负有心人,最终通过这些灵感的积累我终于解决了此问题。 首先让我们先来看看出现的问题,为了看到脚本错误,我先把 webBrowser1.ScriptErrorsSuppressed = true; 隐藏掉,错误如下图所示: 对于此错误,我的第一反应
C#的WebBrowser控件浏览网页
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace openU
C#中使用Webbrowser控件如何传值
在使用Winform开发时,需要用到Webbrowser控件用来展示页面,如何将控件的值传给页面呢?一. 对于少量参数值,可以在url地址中加入需要传输的值。前台页面js解析url地址参数即可//C#代码,传输用户ID为80的值给testPage.aspx页面 string url = "localhost:8080//testPage.aspx?userID="+80; webBrowser1.N
C#.net中释放资源的两种方式
在java中我们如果用到了流或者建立了某个连接,都会在最后调用close方法,然后自己手动设置成null,或者不设置成null,垃圾处理器也会自动将其设置成null,而C#中却提供了两种释放资源的方法 使用using 在C#中使用using,当using执行完成的时候,会自动调用dispose方法,也就是释放资源 using(SqlConnection con = new SqlConn
C# WebBrowser准确判断网页最终装载完毕
最近写了个软件叫WebAutoScript,目的用于,网页的自动操作处理,就是说,所有你在网页上面的操作,都可以录到一个脚本中,然后可以回放这个操作过程。。我是说任何过程。程序是用C#写的,其中遇到了一个难题,对于网页,我是用C#内置的WebBrowser控件控制,但是这个控件有个问题,就是不能准确判断网页什么时候最终装载完毕,如果这个不能判断的话,我根本不可以判断什么时候执行下一个动作,因为
C#的winForm下释放资源
现状: 在winform下只允许10000个控件同时显示。 此方法不能释放资源,只是简单的删除index,而不是dispose()控件: System.Windows.Forms.Control.ControlCollection.Clear(); 下面的方法也不行,因为dispose()以后,index不变,而后面的数组全部前移,所以只能dispose一半: foreach(C
C#:用WebBrowser获取JS动态加载以后的页面代码并保存图片
很多网页的内容包括图片是用JS或Jquery动态加载的,用Webbrowser直接获得的源码是没有参考价值的,而JS加载后含所有element的代码很难获取的,起码笔者搜索了一圈下来看到的方法都几乎没有使用价值。 笔者这里分享一种解决方案,随便找个网页会动态加载内容的,不难发现需要加载的内容需要你滚动页面,视野范围内的内容就会动态加载,于是乎,办法就来了。 首先,你还必须先研究一下你需要抓取的
(C#) 销毁资源和释放内存
0. 什么是资源? .NET 框架中如何访问资源?所谓的资源就是程序中可利用的数据,譬如:字符串、图片和任何二进制数据,包括任何类型的文件。在面向对象的环境中,每一个类型都标识为某些程序所用的资源,要想使用这些资源,必须为相应的类型分配一定的内存空间。访问一个资源需要如下几个步骤:1)分配内存空间: 调用中间语言(IL)中的newobj指令(使用new操作符时,将产生newobj指令),为某个特定...
C# 图片资源无法释放问题
最近在用C#做图片编辑功能时候,遇到一个很奇怪的问题。 由于需要对电脑本地图片修改后进行保存,所以采用最简单的方法,就是把图片加载到PictureBox,编辑之后调用Image类的Save方法直接覆盖原文件保存。这种方法在XP系统及管理权限用户登录的Win7系统上都正常,后来在普通权限用户登录的Win7系统上出现“A generic error occurred in GDI+”的错误。经过跟踪
关于Android程序退出后内存释放的问题
做Android项目的时候发现一个问题:当应用程序退出了,点击"设置"查看应用程序,界面显示着可以点击"强制关闭". 我认为造成这样的原因是还有开启的activity没有被destroy,然后做调试,之后发现开启的activity应该是全部都被 destroy了.但是结果还是显示可以点击"强制关闭". 由于这个问题我发现了一个更加严重的问题,那就是,在我应用程序退出之后,系统并没有释放掉我应
WP 让WebBrowser从独立存储中加载css/js文件以及图片文件
介绍: 在我们的Windows Phone 7项目中,有可能需要动态生成一些HTML字符串或者从WebService上获取一段HTML字符串,然后将这些HTML字符串在WebBrowser控件上显示,那么一般在这种情况下你可能需要将对应的js文件,css文件以及图片文件保存在应用程序安装包内而非从网络上获取。 解决方案: 为了演示如何做到这一点,我们演示一个来
C#关闭窗体前释放资源
在form_closing事件中加入以下代码: System.Environment.Exit(System.Environment.ExitCode); this.Dispose(); this.Close();
WPF中使用WebBrowser Com组件,实现动态HTML抽取。
业务需求: 一个测试工具系统,在原有对静态HTML测试的基础上增加对动态HTML进行验证,验证的是HTML标签的完整性。 测试对象: 一套内部办公系统,大量使用了AngularJs,除去登录地址外,页面中几乎所有的功能按钮,菜单,链接均是由AngularJs完成。 使用技术: WPF+WebBrowser组件+多线程 经验总结: 开发中遇到问题
winForm webbrowser及窗体关闭按钮实现托盘后台运行
winForm窗体关闭按钮实现托盘后台运行(类似QQ托盘区运行) ,实现webbrowser打开网页
通过释放cache内存解决ubuntu死机问题
1.ubuntu老死机工作机器是ubuntu系统,配有16G的物理内存。按理说这个内存量已经不小了,但是同时还运行了一个windows虚拟机,所以机器的资源会略显紧张。每次系统运行不了多少时间,多则三五天,少则一两天,系统就卡死不动了。。。任何操作都没法解决这个问题,每次只能重启大法,长按power键,重启机器。终于某一次一天之内重启两次以后,本人实在受不了了,下决心要解决这个问题。。根据之前的几次
C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录
C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录 最近学习C#网络编程中,想实现网页自动登录并提交GET/POST信息,再实现循环登录不断发送报文给服务器,服务器发送消息给客户端记录能登录的账户和密码,做到后面实现绕过验证码、动态抓取登录位置等,但由于资料很少、进度缓慢,下面这篇文章仅供大家交流阅读。 也许你可能看过一篇文章关于C#实现POST提交方式中
C#程序关闭后,并没有释放内存。还在内存中运行的解决方法
  再closing事件中加入如下语句 System.Diagnostics.Process.GetCurrentProcess().Kill();
使用webBrowser时 excel嵌不进去
在使用webBrowser时 有些office版本 会出现excel嵌不进去的情况,可以修改注册表来修复,不会影响其他的使用。。
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习java很绝望怎么破 学习java很枯燥