首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ppapi_simple程序调用异步PPAPI函数

从ppapi_simple程序调用异步PPAPI函数
EN

Stack Overflow用户
提问于 2014-10-28 12:33:09
回答 1查看 401关注 0票数 0

我有一个NaCl C程序使用ppapi_simple。我需要调用异步PPAPI函数,如NetworkMonitor::UpdateNetworkList()

当我天真地尝试实现它时,我传递给UpdateNetworkList()的回调从未被调用。查看ppapi_simple源代码,我注意到ppapi_simple从不在其内部消息循环中调用MessageLoop::Run(),这可能解释了为什么我的回调从未被调用。

在ppapi_simple程序中使用异步PPAPI函数的正确方法是什么?我应该创建自己的线程和消息循环吗?

编辑:根据MessageLoop的文档,它只用于在线程上进行PPAPI调用。因此,我尝试使用UpdateNetworkList()在主线程上调用CallOnMainThread(),它确实有效--我的回调被调用。但不确定这是最好的解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 17:58:11

ppapi_simple运行主线程上的所有内容,并假设用户使用阻塞PPAPI调用。这使得移植代码更简单。在需要回调的情况下,您已经找到了两个解决方案:

  1. 调用主线程上的函数(运行隐式消息循环)
  2. 启动一个新线程,运行一个消息循环,并将工作发送到该消息循环以调用您的函数。

只要您在回调中没有做太多的工作,我就会说调用主线程更简单。如果在主线程上做太多的工作,则会使您的页面没有响应能力。

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

https://stackoverflow.com/questions/26608464

复制
相关文章

相似问题

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