Firebreath计时器回调到主线程

时间:2014-04-19 04:12:01

标签: c++ boost npapi firebreath

我可以知道如何使用Firebreath插件框架在主线程上创建定期计时器回调?我试过FB :: Timer :: getTimer(1,true,EventRunLoop);在StaticInitialize()上。我注意到当我调试到创建的dll插件并将断点转换为EventRunLoop时,我的EventRunLoop函数不会在主线程上运行,VC ++ express 2008总是指示我在工作线程而不是主线程中。

我理解FB:Timer是boost :: asio的包装器。要使用boost创建async_wait,我需要将boost :: asio :: io_service io.run()函数放入主线程中。但是我不知道如何主动访问NPAPI或Firebreath的主线程,因为创建的所有函数都是事件基础。

1 个答案:

答案 0 :(得分:1)

推荐的方法是使用FB::Timer,然后使用m_host->scheduleOnMainThread回调主线程。

如果您只需要Windows,则可以使用WM_TIMER。

FireBreath代码库中的FBTestPlugin示例中有几乎所有这些示例