Firefox 跨线程传递XPCOM接口指针

Firefox 跨线程传递XPCOM接口指针,firefox,xpcom,Firefox,Xpcom,我是一个新的开发Firefox扩展与XPCOM。目前,我正在使用一个后台线程在XPCOM中执行一些工作,需要将一个XPCOM接口(例如nsIDomwindow)的指针从主线程传递到该线程。但是如果在windows API Fundition Createthread中使用指针作为参数,然后使用它,则会导致Firefox崩溃 如何解决这个问题?在MS com中使用CoMarshalInterThreadInterfaceInStream/CogetInterface和LeaseStream是否有类

我是一个新的开发Firefox扩展与XPCOM。目前,我正在使用一个后台线程在XPCOM中执行一些工作,需要将一个XPCOM接口(例如nsIDomwindow)的指针从主线程传递到该线程。但是如果在windows API Fundition Createthread中使用指针作为参数,然后使用它,则会导致Firefox崩溃

如何解决这个问题?在MS com中使用CoMarshalInterThreadInterfaceInStream/CogetInterface和LeaseStream是否有类似的方法?XPCOM是否只支持单线程


期待您的建议和示例代码!提前谢谢

许多XPCOM对象不是线程安全的,尤其是任何DOM对象都只能从主线程访问。要检查对象是否是线程安全的,您必须
QueryInterface
将其发送到对象,并检查
nsiclasinfo.flags
是否包含
nsiclasinfo.THREADSAFE
标志。如果是,那么您只需在线程之间传递接口指针。

许多XPCOM对象不是线程安全的,尤其是任何DOM对象都只能从主线程访问。要检查对象是否是线程安全的,您必须
QueryInterface
将其发送到对象,并检查
nsiclasinfo.flags
是否包含
nsiclasinfo.THREADSAFE
标志。如果是,那么您可以简单地在线程之间传递接口指针