首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步使用c++ xpcom

异步使用c++ xpcom
EN

Stack Overflow用户
提问于 2014-01-03 15:34:09
回答 1查看 90关注 0票数 0

我有一个firefox扩展,它有一个用C++编写的XPCOM组件。与这个组件进行异步通信的最佳方式是什么,这样组件就可以在任何更改时“通知”主应用程序,而不仅仅是响应调用。主要目标是让UI根据XPCOM的信息进行更改,XPCOM与外部系统进行通信。根据要求,通信必须是异步的,因此不能每隔x秒检查一次XPCOM。

我想知道这样一个系统的架构应该是什么样子,以及我应该使用什么技术(Workers/streaming/...)。这个解决方案应该可以在firefox 3.5 - 4.0上运行。

如果能帮上忙我会很感激的。

EN

回答 1

Stack Overflow用户

发布于 2014-01-03 18:11:17

例如,如果您不想自己滚动内容,则可以使用observer服务。这将是一个经典的发布-订阅模式。您的组件将使用notifyObservers()来“发布”通知,然后前端代码可以在通过addObserver声明兴趣之后使用observe

相反,您可以让您的组件公开您自己的一组接口和方法,以实现您自己的观察者模式,类似于nsIObserver所做的事情(甚至重用nsIObserver)。例如,nsIPrefBranch已经做到了这一点:它重用了nsIObserver,但不使用全局观察者服务器,而是自己跟踪观察者。

无论您使用什么,您都应该使用make sure that you dispatch notifications on the main thread,否则任何Javascript前端代码都会失效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20898813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档