我有一个NaCl C程序使用ppapi_simple。我需要调用异步PPAPI函数,如NetworkMonitor::UpdateNetworkList()。
当我天真地尝试实现它时,我传递给UpdateNetworkList()的回调从未被调用。查看ppapi_simple源代码,我注意到ppapi_simple从不在其内部消息循环中调用MessageLoop::Run(),这可能解释了为什么我的回调从未被调用。
在ppapi_simple程序中使用异步PPAPI函数的正确方法是什么?我应该创建自己的线程和消息循环吗?
编辑:根据MessageLoop的文档,它只用于在线程上进行PPAPI调用。因此,我尝试使用UpdateNetworkList()在主线程上调用CallOnMainThread(),它确实有效--我的回调被调用。但不确定这是最好的解决办法。
发布于 2014-10-30 17:58:11
ppapi_simple运行主线程上的所有内容,并假设用户使用阻塞PPAPI调用。这使得移植代码更简单。在需要回调的情况下,您已经找到了两个解决方案:
只要您在回调中没有做太多的工作,我就会说调用主线程更简单。如果在主线程上做太多的工作,则会使您的页面没有响应能力。
https://stackoverflow.com/questions/26608464
复制相似问题