新通投票线程设计

时间:2013-01-17 15:02:56

标签: c# .net multithreading polling xinput

我使用P / invoke为XInput开发了一个.net库,现在我已准备好将它实现为gui(WPF)。

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

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

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

我对WPF和.NET有点新意,所以欢迎任何建议:)

1 个答案:

答案 0 :(得分:0)

对我来说,TPL看起来有些过分。看起来它的目的是让处理器密集型任务在多个处理器上并行运行。

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