3

マルチメディア クラス スケジューラ サービスを試してみたいhttp://msdn.microsoft.com/en-us/library/ms684247(v=VS.85).aspx

スレッドをより適切にスケジュールすることで、待ち時間を短縮できることを願っています。

C# でどのように行うことができますか?

注: 私のアプリはマルチメディアとは関係ありません。必要なのは MMCSS の機能だけです。

4

2 に答える 2

2

特定のタスクに関連する作業を実行している各スレッドは、AvSetMmMaxThreadCharacteristics または AvSetMmThreadCharacteristics 関数を呼び出して、そのタスクで作業していることを MMCSS に通知します。

必要なのは、これらの API 呼び出しのいずれかを P/Invoke することだけです。

しかし、ガベージコレクターが介入して物事を台無しにすると、すべてが無駄になると思います。

裏で何が起こっているかを確認するために、アプリのプロファイリングを行いましたか? あなたのアプリが本当にレイテンシーに敏感なら、C# はおそらく間違った言語の選択です。

于 2010-06-23T12:11:59.127 に答える
0

マネージ アプリケーションで MMCSS を使用する意味がわかりません。結局のところ、MMCSS のポイントは、プロセスのスケジューリングの優先度を調整して、マルチメディア ストリーム処理中の停止を回避することです。これは、ナノ秒レベルのスケジューリングです。しかし、ガベージ コレクションがいつでも発生する可能性があり、数十ミリ秒または数百ミリ秒かかる可能性があるマネージ言語では、ガベージ コレクションによって完全に消去されずに MMCSS が提供する利点はわかりません。

そのことを念頭に置いて、MMCSS への管理されたインターフェイスがすぐに表示されるとは思いません。確かに P/Invoke 経由でアクセスできますが、奇跡は期待できません :)

于 2010-06-23T12:10:08.497 に答える