2013-01-17 58 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看起來像矯枉過正我。看起來它的目的是讓處理器密集型任務在多個處理器上並行運行。

輪詢控制器不會過度集中處理器。我會說後臺工作人員能夠勝任這項工作,並且應該能夠處理所有的控制器。同時輪詢每個控制器。