【发布时间】:2011-11-09 10:19:00
【问题描述】:
在我的游戏中,我有实体(大约 2000 到 5000 个)每帧(或每 2 或 3 帧)执行非常繁重的计算。
我知道并行编程在这种情况下会有所帮助。 问题是我如何以最好的方式使用多个线程/cpu-cores。
我尝试了 .NET 中的静态 Parallel 类,但每个 Parallel.For / Parallel.ForEach 的启动成本简直太高了。
每次我调用 Parallel 类的函数时它会启动多个线程吗? 游戏的目标 fps 是 60 fps,所以无论我使用什么方法,都不应该涉及在每个游戏帧中启动多个线程!
所以我的问题是: 并行处理多个实体还有哪些其他选择? 我应该自己创建线程吗?如果是,有什么陷阱? 线程池是一个不错的选择吗?
【问题讨论】:
标签: c# .net parallel-processing