2012-02-28 11 views
1

私は、D2XXインターフェイス経由でFTDIデバイスにオーディオデータを供給するアプリケーションを持っています。私のアプリケーションに焦点が当てられている間は完全に動作し、CPU(5%)はほとんど使用しません。しかし、CPUをハンマーで(他のアプリケーションや重い図面に切り替えて)ハンマーしていると、時にはオーディオに吃音が生じることがあります。.Netのリアルタイム優先度

これ(プロセス/スレッドの優先度をリアルタイム、MMCSSスケジューリングなど)を防ぐために多くのことを試しましたが、それでも時々発生します。

カーネルドライバを作成せずに優先順位を引き上げる方法はありますか?

+0

USBペリフェラルにどのくらいのバッファリングがありますか? –

+0

方法はありません。カーネルに優先度の高い項目を作成することはできますが、リアルタイムカーネルではないため、100%保証されていません。 – Christopher

答えて

-1

.net 4.0の並列プログラミングの可能性を検討することをお勧めします。タスクファクトリを作成し、いくつかの並列スレッドで作業をさせると、割り当てられたCPU%が高くなります。

+1

私は問題がスループットではなく、レイテンシだと思います。あなたのソルーションはレイテンシを助けません。 – svick

0

プロセス(スレッドではない)の優先順位を "リアルタイム"に設定した場合、そのスレッドは、リアルタイムではない他のプロセスからのスレッドの前に常に実行する必要があります。だから私はこれがあなたができる最高だと思う。

ただし、システム全体が応答しなくなる可能性があるため、リアルタイム処理の優先度は絶対に必要な場合にのみ使用してください。

0

デバイスにサービスを提供するスレッドの優先度を上げるか、デバイスとの通信のバッファサイズ(可能な場合)を増やします。

ウィンドウ内のタスク切り替えの最小時間は10msです。あなたのスレッドがデバイスからのデータを所定の時間内に処理しない場合、吃音と音声の低下があります。