2014-04-19 74 views
0

我可以知道如何在主線程上使用Firebreath插件框架創建定期計時器回調?我試過FB :: Timer :: getTimer(1,true,EventRunLoop);在StaticInitialize()上。我注意到我的EventRunLoop函數不能在主線程上運行,當我調試到創建的dll插件和中斷點到EventRunLoop中時,VC++ express 2008總是表明我是在工作線程內而不是主線程。Firebreath定時器回調到主線程

我明白FB:Timer是boost :: asio的包裝。要使用boost創建async_wait,我需要將boost :: asio :: io_service io.run()函數放入主線程。但我不知道如何主動訪問NPAPI或Firebreath的主線程,因爲所創建的所有功能都是基於事件的。

回答

1

推薦的方法是使用FB::Timer,然後使用m_host->scheduleOnMainThread回調到主線程。

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

在FireBreath代碼庫中的FBTestPlugin示例中有幾乎所有這些示例的示例