最近在使用 webBrowser 做一个类似编辑器的东西,功能基本上都完成,最后却发现有一个比较严重的缺陷:
当使用 pasteHTML 方法过多时,程序响应速度会急剧下降。
using mshtml; // 初始一个 IHTMLTxtRange 对象 txtObj IHTMLDocument2 htmlObj = (IHTMLDocument2)webBrowser1.Document.DomDocument; txtObj = htmlObj.selection.createRange(); // 获得页面内容 txtObj.moveStart("textedit", -1); txtObj.moveEnd("textedit", 1); string html = txtObj.htmlText; // 更新页面内容 txtObj.moveStart("textedit", -1); txtObj.moveEnd("textedit", 1); txtObj.pasteHTML(html);
在多次更新内容后,发现响应速度变的很慢,cpu占用率升高,推测可能是每次 pasteHTML 后,数据都保存在 webBrowser 的缓存里,因为只要更换所操作的文件,速度会回到最初,但再继续多次操作后,又会变慢
我在 msdn 上搜索了半天,也没找到如何释放 pasteHTML 所占用的系统资源,请各位提供一个方法或思路
相关问题
- Sorting 3 numbers without branching [closed]
- Graphics.DrawImage() - Throws out of memory except
- Why am I getting UnauthorizedAccessException on th
- 求获取指定qq 资料的方法
- How to know full paths to DLL's from .csproj f
txtObj.collapse(false);
你的电脑上IE浏览器装的是哪个版本?