我在课程中有2个方法(login()
和change()
)。
在该课程中,我还有一个属性(webBrownser wb
)
我通过线程
调用login()
Thread tLogin = new Thread(b.doLogin);
tLogin.SetApartmentState(ApartmentState.STA);
tLogin.Start();
和方法change()
也是由线程
Thread tLike = new Thread(b.autoLike);
tLike.SetApartmentState(ApartmentState.STA);
tLike.Start();
但是当方法change()
尝试使用属性wb
时,我会收到以下消息:
已与基础RCW分离的COM对象不能 使用。
我做错了什么?
这些方法与lock()
...
答案 0 :(得分:0)
WebBrowser是一个COM(或ActiveX)组件。它不能用于任何其他线程而不是使用object创建的线程。并且该线程需要一个消息泵(例如WinForms中的Application.Run
)。
有关如何执行此操作的详细信息,请参阅WebBrowser Control in a new thread