0

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

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

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

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

一般来说,我对 WPF 和 .NET 有点陌生,所以欢迎任何建议:)

4

1 回答 1

0

TPL 对我来说似乎有点矫枉过正。看起来它旨在让处理器密集型任务在多个处理器上并行运行。

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

于 2014-01-17T09:32:32.630 回答