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 に答える