webBrowser使用多线程问题
假设一共有16个页面
for (int j = 0; j < 16; j++)
{
Thread th = new Thread(new ThreadStart(Start));
th.SetApartmentState(System.Threading.ApartmentState.MTA);
threads[j] = th;
}
for (int c = 0; c < 16; c++)
{
threads[c].Start();
}
void Start()
{
Invoke(new MethodInvoker(delegate()
{
ge = new Regex("<SPAN class=order-num>" + @"[\s\S]*?" + "</SPAN>", RegexOptions.IgnoreCase);
ch = ge.Match(body);
if (ch.Value != "")
{
number = Regex.Replace(ch.Value, @"[^\d]*", string.Empty);
body = body.Remove(ch.Index, ch.Length);
webBrowser1.Navigate("http://trade.taobao.com/trade/detail/trade_item_detail.htm?bizOrderId=" + number + "");
}
}));
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
}
为什么webBrowser1_DocumentCompleted 有加载了一个页面? 多线程 线程 --------------------编程问答-------------------- 楼主代码排版有问题,看起来好累, ch = ge.Match(body);这边的body在哪赋值的?
还有webBrowser1.Navigate("http://trade.taobao.com/trade/detail/trade_item_detail.htm?bizOrderId=" + number + "");
这里面的number 感觉是一个值哇 --------------------编程问答--------------------
body 就是加载好的HTML,number 就是ID 这些不会有错。我意思是我开了16个线程访问16个网址 但是只有最后一个网址进到webBrowser1_DocumentCompleted里面。 --------------------编程问答-------------------- 楼主单步调试下,看看到底走了没 --------------------编程问答-------------------- 多线程一般不大好调试,楼主将执行过程写进log吧
看看这16个线程的执行情况怎么样
补充:.NET技术 , C#