日期:2014-05-20  浏览次数:21026 次

多线程抓取遇到的很复杂的问题。
我在.net   2005中写了一个控制台程序,多线程抓取网页内容,但用
                        WebBrowser   webb   =   new   WebBrowser();
                        webb.Navigate( "about:blank ");
                        HtmlDocument   htmldoc   =   webb.Document.OpenNew(true);
                        htmldoc.Write(strWeb);
                        return   htmldoc.GetElementsByTagName( "TR ");
    分析网页内容时总是报
          “当前线程不在单线程单元中,因此无法实例化   ActiveX   控件“8856f961-340a-11d0-a96b-00c04fd705a2”。”
    错误!
    我每一个线程中都加了   startSnatch.SetApartmentState(ApartmentState.STA);
      但还是没用。
      希望能得到各位高手的帮忙!多谢!

------解决方案--------------------
要跨线程线程操作控件要用委托,相关资料请搜索
------解决方案--------------------
Control.Invoke
------解决方案--------------------
用Control.Invoke,应为你在自己的work线程里面调用了UI线程里面的对象