asp.net ,要在Global.asax里的protected void Application_Start(object sender, EventArgs e){}里面(应用程序启动时)调用类库里写好的方法去抓取网页的内容更新的数据库,类库代码如下:
WebBrowser webb = new WebBrowser();
webb.Navigate(url);
while (webb.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
if (webb != null)
{
try
{
reader = new StreamReader(webb.DocumentStream, Encoding.GetEncoding(webb.Document.Encoding));
result = reader.ReadToEnd();
}
catch
{
return;
}
finally
{
reader.Close();
webb.Dispose();
}
}
可是到WebBrowser webb = new WebBrowser();这一步就出题目上的错误了,试过加上[STAThread]也没用,求解决啊!
void Application_Start(object sender, EventArgs e)
{
// 應用程式啟動時執行的程式碼
System.Threading.Thread th =new System.Threading.Thread( new System.Threading.ThreadStart(
()=> {
WebBrowser webb = new WebBrowser();
}));
}
你是用了多线程吧?凡是针对UI的操作都必须在主线程里进行处理。
如果你需要在其它线程里执行这个操作,有个主窗体的方法可以实现,好像是Invoke(BeginInvoke/EndInvoke)还是别的什么的。查找下。这个方法是UI对象的成员。
关注中