Windows XP で Visual Studio を使用してコンソール C++ アプリケーションを開発しています。このアプリケーションは、スケジューラに対して可能な限り高い優先度でなければなりません。
int main()
{
while ( somecondition )
{
// pick data from external hardware every 10 milliseconds
// do computation
}
}
これは、10 ミリ秒ごとにフレーム バッファを更新するように調整されたリアルタイム データ取得システムであるため、他のシステム プロセスが干渉してはならないということです。
各フレームの時間的な長さをファイルに保存しようとしましたが、目的の時間の周りに奇妙な「量子化」が見つかりました。なんで?
また、長さが基本フレーム時間の倍数になることもありますが、これは内部 OS プロセスの干渉が原因ですか?
プログラムの優先順位を最高にする方法はありますか?