2013-01-17 29 views
0

我已经为XInput使用P/invoke开发了一个.net库,现在正准备将它实现为一个gui(WPF)。Xinput轮询线程设计

我看了一下BackgroundWorker类,并且已经将它作为1个控制器的测试工作,但它是一个黑客工作,显然它不适合2-4控制器(这主要是为了完成看看我需要用gui来做什么)。

所以我在这里问一些更多的经验丰富的人,如何在这个应用程序的线程。我应该继续使用BackgroundWorker类还是使用.net 4或其他方法查看TPL?

工作线程是必需的,因为没有XInput的消息传递系统,只有轮询系统。工作线程大致每20ms检查一次输入或类似的东西(Thread.Sleep)。我也不确定是否应该只有1个工作线程的所有控制器或4个工作线程(最大控制器限制为4)。

我有点一般新的WPF和.NET,所以任何建议欢迎:)

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

回答

0

TPL看起来像矫枉过正我。看起来它的目的是让处理器密集型任务在多个处理器上并行运行。

轮询控制器不会过度集中处理器。我会说后台工作人员能够胜任这项工作,并且应该能够处理所有的控制器。同时轮询每个控制器。