请教高手:WebBrowser重复使用时,程序未响应

zhl71199713 2011-05-08 08:26:30

public void ThreadWebBrowser(string url)
{
System.Threading.Thread tread = new Thread(new System.Threading.ParameterizedThreadStart(BeginCatch));
tread.SetApartmentState(ApartmentState.STA);
tread.Start(url);
tread.Join();
}
public void BeginCatch(object obj)
{
string url = obj.ToString();
WebBrowser browser = new WebBrowser();
browser.ScriptErrorsSuppressed = true;
browser.Navigate(url);//多次调用这里会卡住,程序会未响应,导致时间超过了预期时间,有没有什么办法改进

while (browser.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();//有没有方法 让这里时间缩短一些
}
GetHtml(browser);//调用其他函数,获取Html
browser.Dispose();
}
...全文
200 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhl71199713 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wardensky 的回复:]
我也遇到了多次调用卡住的问题。好的情况下30次左右,不好的情况下10次就会卡住。
我用的解决方法是用一个线程计时,如果超过了一定时间(1分钟?)仍然没有返回,就重新navigate(url)一次。
这个方法比较烂,但你可以试一下。
[/Quote]
这个方法 这个有点鸡肋
有没有其他的好方法啊
坐等
zhl71199713 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dxd0128 的回复:]
用委托,然后begininvoke或者invoke试一下
[/Quote]

这个方法行不通
zhl71199713 2011-05-10
  • 打赏
  • 举报
回复
坐等高手解惑!!
独立级IT民工 2011-05-10
  • 打赏
  • 举报
回复
用委托,然后begininvoke或者invoke试一下
zhl71199713 2011-05-09
  • 打赏
  • 举报
回复
怎么没人回答
自己顶一下
  • 打赏
  • 举报
回复
我也遇到了多次调用卡住的问题。好的情况下30次左右,不好的情况下10次就会卡住。
我用的解决方法是用一个线程计时,如果超过了一定时间(1分钟?)仍然没有返回,就重新navigate(url)一次。
这个方法比较烂,但你可以试一下。
zhl71199713 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 pmars 的回复:]
耗资源,速度慢!
[/Quote]
就是这个原因 所以来求助高手啊
pmars 2011-05-09
  • 打赏
  • 举报
回复
耗资源,速度慢!
zhl71199713 2011-05-09
  • 打赏
  • 举报
回复
来位高手帮忙啊
zhl71199713 2011-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]
不要在线程中使用WebBrowser了。
[/Quote]

但是 我现在有一个程序 必须在这种情况下使用
healer_kx 2011-05-08
  • 打赏
  • 举报
回复
不要在线程中使用WebBrowser了。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧