2012-09-22 20 views
1

我在一个类中有两种方法(login()change())。C#中线程浏览器#

那堂课我也有一个属性(webBrownser wb

我叫login()通过螺纹

Thread tLogin = new Thread(b.doLogin); 
tLogin.SetApartmentState(ApartmentState.STA); 
tLogin.Start(); 

和线程太

Thread tLike = new Thread(b.autoLike); 
tLike.SetApartmentState(ApartmentState.STA); 
tLike.Start(); 

方法change()但当方法change()尝试使用属性wb我收到此消息:

已与其基础RCW分离的COM对象不能使用 。

我在做什么错?

的方法是用同步lock() ...

+0

您必须创建浏览器的新实例。在拥有它的线程终止之后,旧线程死了。 –

回答

0

web浏览器是一个COM(或ActiveX)组件。它不能用于任何其他线程,而不是使用object创建的线程。并且该线程需要具有消息泵(例如WinForms中的Application.Run)。

有关如何操作的更多细节,请参见WebBrowser Control in a new thread

+0

如何通过相同的登录线程来调用autoLike方法? – user1691243

+0

@ user1691243我已添加链接以获取有关详细信息的链接... –

+0

我需要创建仅用于导航的线程吗? – user1691243