我已经使用P/invoke为XInput开发了一个.net库,现在正准备将它实现到一个图形用户界面(WPF)中。
我已经看过了BackgroundWorker类,并将其作为1控制器的测试,但这是一项繁琐的工作,显然它不适合2-4控制器(这主要是为了了解我需要对gui做些什么)。
因此,我在这里询问更多有经验的人,关于如何在这个应用程序中处理线程。我应该继续使用BackgroundWorker类,还是应该看看.net 4中的TPL,或者其他一些方法?
工作线程是必需的,因为XInput没有消息传递系统,只有轮询系统。工作线程大约每隔20ms检查一次输入(Thread.Sleep)。我也不确定所有控制器是否应该只有一个工作线程,还是应该有4个工作线程(控制器的最大限制是4)。
总的来说,我对WPF和.NET还是个新手,所以欢迎任何建议:)
发布于 2014-01-17 17:32:33
在我看来,TPL有点杀伤力。它看起来像是为了让处理器密集型任务在多个处理器上并行运行。
轮询控制器不会过度占用处理器资源。我会说后台工作人员可以胜任这项工作,并且应该能够处理所有的控制器。同时轮询每个控制器。
https://stackoverflow.com/questions/14381906
复制相似问题