当前位置:编程学习 > C#/ASP.NET >>

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 感觉是一个值哇 --------------------编程问答--------------------
引用 1 楼 qiujialongjjj 的回复:
楼主代码排版有问题,看起来好累,   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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,