Tips

ユーザモードプロセスの優先度合いを下げる

日付1999/11/05
ID99-165
バージョン
プラットフォーム

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

プロセスの優先順位は4th Dimensionが管理しています。これは自動的に行われる機能です。

最前面プロセスが他のプロセスより高い優先順位を持つのは、表示しているフォームに入力可能なオブジェクトを持っている時だけですが、その時でさえ4Dは、断続的に起きた2度のキーストロークの間のわずかな時間を他のプロセスのために使うようCPUに指示します。

絶対的な優先権を特定のプロセスへ与える唯一の方法は、他の全てのプロセスを止めてしまうことです。つまり、可能なかぎり高速に処理したいプロセスがあれば、その他のプロセスはPAUSE PROCESSし、HIDE PROCESSしてしまうことです。

しかし、“その他のプロセス”にユーザモードプロセスが含まれる場合は少し工夫が必要です。なぜなら、ユーザモードプロセスはカーネルプロセスなので、PAUSE、HIDEが出来ません。そこで、このユーザモードプロセスの優先順位を下げるための方法は、

・ダイアログをスクリーン外に開く

です。ダイアログにはキャンセルボタン1つだけにしておきます。
4Dは入力可能なオブジェクトが無いフォームを表示しているダイアログはマウスがそのフォームの上にある時以外は、そのプロセスに対してCPU時間を割きません。
(入力可能なオブジェクトがある時は、定期的にそのオブジェクト内容をチェックするためにそのプロセスをウォッチします。)
したがって、スクリーン外にボタンのみのダイアログを開いておけば、ユーザモードプロセスの優先順位を下げることが出来ます。