webbrowser多线程请教~分不够可以再给~~
开发环境vs2010英文版,
为了同时显示好几个不同网页,在form里画了wb1-10,名字为wb1,wb2,....wb10,从控件里拖动出来的,
private void button1_Click(object sender, EventArgs e) //用来触发启动所有线程
{
Thread r1 = new Thread(new ThreadStart(return_1));
r1.IsBackground = true;
r1.SetApartmentState(ApartmentState.STA);
......................r2-r10的同样处理
r1.start();
r2.start();
r3.start();
..
..
}
void return_1()
{
WebBrowser my = webBrowser1_查询网站1;
my.ScriptErrorsSuppressed = true;
my.Navigate("http://第一个网址");
//my
//等待加载完毕
while (my.ReadyState < WebBrowserReadyState.Complete) Application.DoEvents();
//用这个方法有个问题,就是r1-r10都start后,会提示权限问题,貌似跨出了线程了是不是,有个冲突问题,这句可以怎么改呢?
//while (complete_state[0] < 1) { Debug.Print(my.ReadyState.ToString() + "\n"); }
//注释掉的是方法2,我想通过结束事件来获取结束了,可是不行,一直没有引发“webBrowser1_查询网站1_DocumentCompleted”
HtmlElement f = my.Document..................;
do_something();
}
private void webBrowser1_查询网站1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
complete_state[0]++;
Debug.Print("查询网站1:" + complete_state[0].ToString() + "\n");
}
=====================================================================
问题:
1:用while (my.ReadyState < WebBrowserReadyState.Complete) Application.DoEvents();来判断是否加载完毕,单个线程时候可以,r1-r10都启动后,会不定期,不固定的跳出错误,说权限问题,估计WebBrowserReadyState.Complete是个通用变量是不是?还是?这个怎么解决呢?
2:用while (complete_state[0] <1) { Debug.Print(my.ReadyState.ToString() + "\n"); }来判断是否加载完毕,这个不会结束,一直死再循环里面,(通过单步观察,这个加载完了,值就是1,这个没问题,),我这里想拖延时间不管用,用了thread.sleep还是不行,哪位大大可以指点一下?
qq:724339906,新新,谢谢