【发布时间】:2012-06-26 04:36:29
【问题描述】:
我正在开发一个 XNA 项目,其中有两个 DrawableGameComponents A 和 B,具有以下约束:
- A 是可见的,或者 B 是可见的。所以只需要调用他们的“Draw”方法之一。
- A 和 B 都需要启用 - 始终。所以在任何情况下都必须调用每个的“Update”方法。
目前 A 和 B 都在同一个线程中执行。但是,它们的“更新”方法非常占用 CPU。由于两个 GameComponent 不需要相互通信,并且两个 GameComponent 不需要共享任何数据,因此很容易将它们并行化。
我想知道的是如何在 XNA 中做到这一点。 XNA 框架调用了“更新”和“绘制”方法,所以我不知道把线程放在哪里。有这样做的标准方法吗?
【问题讨论】:
-
xbox360 上的多线程与 PC 略有不同。它必须根据不同的方式进行编码。这是针对一个或另一个还是两者?此外,如果是 PC,则无法保证用户拥有多核 CPU。如果他们有一个单核 CPU,多线程可能会花费时间,而不是节省时间。
-
目标机器只是一台PC。项目不是游戏,只会有一台机器多核执行,所以一般多线程是没有问题的。
标签: multithreading xna