我想解析网页动态的内容,比如from提交后的最终url, 所以用webbroswer模拟行为后抓取url
我现在单线程OK, 但多线程运行程序是会遇到问题,
while (WebBrowserReadyState.Complete != Web.ReadyState)
{
Application.DoEvents();
}
这时候会报错:
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
代码已经声明为STA线程
Threads[i] = new Thread(new Crawler().Start);
Threads[i].SetApartmentState(ApartmentState.STA);
Threads[i].Start(url);
有高人知道原因么? 我觉得跟COM, 非托管内存管理有关
IE的对象模型是STA的,估计这样使用只能是多个进程的形式才行