Firebreath计时器回调到主线程

Firebreath timer callback to main thread

本文关键字:线程 回调 计时器 Firebreath      更新时间:2023-10-16

我可以知道如何使用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的主线程,因为创建的所有函数都是基于事件的。

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

如果你只需要窗口,你可以使用WM_TIMER。

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