我用多线程控制多个webbrowser 空间实现加载网页模拟点击,在有些网页中需要停留时间,因此我在DocumentCompleted事件中用sleep随机停留了时间,停留网页状态!但是只要一停留窗口就开始卡,没反应,直到几十秒后恢复正常,不知道这个怎么解决?请高手指导!
解决方案 »
- 为什么显示不出来?
- C#如何实现定义PropertyGrid下拉框并动态改变其值
- C#关闭释放网络流
- c#模拟注册Discuz
- 用户控件如何调用页面的方法问题,急!!!
- 这一句如何改?TmpDV.RowFilter = "gbsj between '" + StartDateStr + "' and '" + EndDateStr + "' and dhlsh = '"+DH+"'";
- 方法可以执行到半路上切断吗?
- EnterpriseLibrary 类问题,怎么读取一列记录?测试通过,立即接贴!
- 初学C#,请各位大大给点建议
- 100分求端口映射问题~~
- VS2005 换了win7系统 项目运行异常
- C# winform 中英双语版本切换
比如 httpwebrequest
需要多线程构造多个窗体的多个webbrowser才可以。
Webbroswer 也是在ui线程中,你sleep相当于把ui线程sleep了,当然会卡了
虽然不懂 但是楼上这兄弟似乎 说的对 是啊 你sleep啥都sleep包括UI线程
具体该怎么做??怎样才能不卡!不sleep UI线程
??
Timer timer;
初始化:
timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer事件:
void timer_Tick(object sender, EventArgs e)
{
//通知继续
//timer.Stop();
}
让timer干活:
timer.Interval = 1000;
timer.Start()
说得明白点,lz根本就没有使用多线程,所有wb都是在一个窗体线程中的。
sleep窗体,当然窗体会卡。
嗯,就算多线程,后台线程sleep,也会报异常。webbrowser应该是不能够多线程的,线程速度比那个documentCompleted等事件速度还要快,未等页面元素全部加载完毕,线程已经开始运作了。异常为:指定的转换无效。InvalidCastException