C# winform(WebBrowser) 多线程问题 本帖最后由 lovecooldog 于 2012-07-18 09:54:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 干吗用WebBrowser来解析网页呢。。WebBrowser应该很耗内存吧。。而且还不好释放,为啥不直接用HttpRequest等方式来抓取网页源代码呢? createDomTree()里面加Application.DoEvents();其它的都去掉。 首先感谢你的回复你的意思是说去掉cretateDomTree()去掉里面的TreeNode treeNode = parserHtmltoTree();//这个遇到信息量大的网站挺费时间BeginInvoke(new delegateUpdateTreeView(delegateUpdateTreeViewImpl), treeNode);两行代码,然后添加上Application.DoEvents();但是我这两句代码放在什么位置呢? 首先感谢你的回复但是后续操作我要用到WebBrowser,不知道有什么好的办法解决! 你是说 只在cretateDomTree()方法中加Application.DoEvents();其他地方加的都去掉是吧!但是也不行! A first chance exception of type 'System.UnauthorizedAccessException' occurred in (工程名称)*.exe。这个异常已经解决 是跨域的问题!但是其他问题还没有解决,希望得到大家的帮助! 没有高手能解决那我再问另一个问题如何判断webBrowser里页面iframe完全加载完毕谷歌、百度我都搜遍啦,所有方法都不行如:1、用计数器count=0,通过事件webBrowser_Navigated和webBrowser_DocumentCompleted对count分别自增和自减 2、在DocumentCompleted事件中判断e.Url和WebBrowser.Document.Url是否一致,如一致则表示初始页面加载完毕等方法没有一个能解决问题的,因为每加载完成一次iframe就会触发一次 commpleted,遇到iframe多的就要触发很多次,根本无法判断什么时候最终加载完成! 希望高手指点! isbackground=true; 试试! 每加载完成一次iframe就会触发一次 commpleted,遇到iframe多的就要触发很多次,1,估计这导致重复解析造成假死。可以在解析时,加一个解析标志。如果解析标志为真,则即使commpleted触发,也不再执行解析。从而避免重复解析。2,这样可能的问题就是解析的是首次网页内容,iframe中的内容并没有解析。 可能解析的不是最后的页面。 那么,可以加一个延时。如果commpleted触发后,延长一定时间,再来解析。 因为你的解析并不需要这样急,晚一解析出来,不影响其它的操作。 求懂使用C#开发三维图形的高手帮忙!!!! 怎么在WEB中的实现模糊查询 c#winform 鼠标事件 读取Excel的问题 问个mschart的问题 低级问题--抢分了!(怎么判断网页中,是那个BUTTON提交的) asp.net页面是如何实现页面布局的 线程和进程 数据绑定时使用checkBox于SqlServer中的bit字段绑定出错! 请问,如何定义一个动态2维数组? DevExpress的GridControl的焦点设置问题,找了一天了,求大家帮助. C#窗体界面中如何让一个对象沿着已画好的一条直线移动?求大神
里面加Application.DoEvents();
其它的都去掉。
首先感谢你的回复
你的意思是说去掉cretateDomTree()去掉里面的
TreeNode treeNode = parserHtmltoTree();//这个遇到信息量大的网站挺费时间
BeginInvoke(new delegateUpdateTreeView(delegateUpdateTreeViewImpl), treeNode);两行代码,然后添加上Application.DoEvents();但是我这两句代码放在什么位置呢?
首先感谢你的回复
但是后续操作我要用到WebBrowser,不知道有什么好的办法解决!
你是说 只在cretateDomTree()方法中加Application.DoEvents();
其他地方加的都去掉是吧!但是也不行!
那我再问另一个问题
如何判断webBrowser里页面iframe完全加载完毕
谷歌、百度我都搜遍啦,所有方法都不行
如:1、用计数器count=0,通过事件webBrowser_Navigated和webBrowser_DocumentCompleted对count分别自增和自减
2、在DocumentCompleted事件中判断e.Url和WebBrowser.Document.Url是否一致,如一致则表示初始页面加载完毕
等方法没有一个能解决问题的,因为每加载完成一次iframe就会触发一次 commpleted,遇到iframe多的就要触发很多次,根本无法判断什么时候最终加载完成!
希望高手指点!
2,这样可能的问题就是解析的是首次网页内容,iframe中的内容并没有解析。 可能解析的不是最后的页面。 那么,可以加一个延时。如果commpleted触发后,延长一定时间,再来解析。 因为你的解析并不需要这样急,晚一解析出来,不影响其它的操作。