我在backgroundWorker的DoWork里面执行了以下代码结果就报错说“当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”
代码如下:
try
{
string allHtml = "";
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(LoginUrl);
webrequest.Timeout = 30000;
webrequest.CookieContainer = cookieCon;
HttpWebResponse myresponse = (HttpWebResponse)webrequest.GetResponse();
Stream streamResponse = myresponse.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse, Encoding.GetEncoding(Encode));
allHtml = streamRead.ReadToEnd();
streamResponse.Close();
streamRead.Close();
//转换HtmlDocument
WebBrowser ber = new WebBrowser(); //错误在这里
ber.Navigate("about:blank");
ber.DocumentText = "<html><body>this is a htmlbr/><input type='text' name='username'/><br/></body></html>";
HtmlDocument doc = ber.Document;
doc.Write(allHtml);
}
catch (Exception)
{
}
应该是UI线程问题吧 怎么解决或者还有其他办法获取对应URl的HtmlDocument对象吗?
代码如下:
try
{
string allHtml = "";
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(LoginUrl);
webrequest.Timeout = 30000;
webrequest.CookieContainer = cookieCon;
HttpWebResponse myresponse = (HttpWebResponse)webrequest.GetResponse();
Stream streamResponse = myresponse.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse, Encoding.GetEncoding(Encode));
allHtml = streamRead.ReadToEnd();
streamResponse.Close();
streamRead.Close();
//转换HtmlDocument
WebBrowser ber = new WebBrowser(); //错误在这里
ber.Navigate("about:blank");
ber.DocumentText = "<html><body>this is a htmlbr/><input type='text' name='username'/><br/></body></html>";
HtmlDocument doc = ber.Document;
doc.Write(allHtml);
}
catch (Exception)
{
}
应该是UI线程问题吧 怎么解决或者还有其他办法获取对应URl的HtmlDocument对象吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货