【发布时间】:2015-03-11 19:18:27
【问题描述】:
我正在使用 cocos2d-x V3.4,但我仍然找不到如何使用多线程的好例子。我使用 pthread 作为工作线程来做一些后台处理。从 pthread 中,我触发了一些自定义事件(Director::getInstance()->getEventDispatcher()->dispatchEvent(&evt);)来更新 UI。只要触发的事件不添加任何图形,事情就可以正常工作到 UI (addChild)。移动精灵看起来没有任何问题。但是一旦 pthread 触发了一个需要添加 ui 节点(在我的例子中为 DrawNode)的事件(EventCustom),我就会得到一个黑屏。从我在网上可以找到的内容来看,pthread 不应该触发这些事件。他只需要填满一个事件队列并安排从 UIThread 中提取这些事件以进行渲染。我所做的是将 std::vector 作为单例类 GameManager 的成员。我的 pthread 推送到该列表。我安排从该列表中提取。但我的应用程序不断崩溃。所以我很确定我正在做的不是正确的方法。
【问题讨论】:
标签: c++ multithreading pthreads cocos2d-x