【发布时间】:2014-01-27 05:40:29
【问题描述】:
我的程序的事实
- Cocos2d-x 主循环在自己的线程中运行。我们称之为 cocos2d-x-thread。
- 我有一个
task_scheduler,它在自己的线程中运行,您可以在其中提交轻量级任务。我们称之为 task_scheduler-thread。 - 每隔 x 毫秒,就会从
task_scheduler线程发出一个回调。我们称之为 task_scheduler-tick-callback。
我想做的事
我想在发出 task_scheduler-tick-callback 时加载一个精灵,但我无法从该线程执行此操作,所以我必须提交某种工作 由 cocos2d-x 线程 执行。
问题
- 我怎样才能让cocos2d-x-thread,在收到这个work时,被执行?因为 cocos2d-x 已经在运行自己的循环,并且我想不惜一切代价避免将自定义代码注入到 cocos2d-x 生成的项目中。
任何模式?
编辑:想法 -> 在 cocos2d-x 中为每个循环迭代调用的任何回调函数?那存在吗?我可以像这样将调用整合到我的作品中。
【问题讨论】:
-
搜索线程同步,注意cocos2d本身不是线程安全的
-
好吧,我猜我对线程同步的了解已经够多了。我的主要问题是让 cocos-2d-x-thread 调用我提交的工件,而无需在该侧添加或删除代码。我认为应该有回调。
-
为什么不安排一个更新选择器(方法),例如在现场,然后从那里运行你的线程?
标签: c++ multithreading design-patterns cocos2d-x