Visual FoxPro をシェルで起動されたアプリケーションのプロセス優先度を変更する方法

文書翻訳 文書翻訳
文書番号: 193846 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

プロセスの優先度 Win32 カーネルによってその実行がスケジュール方法を決定します。 優先度の高いプロセスを優先度の低いプロセスよりも早く実行します。 ここでは、シェルで起動されたアプリケーションのプロセスの優先順位を変更する方法について説明します。

詳細

次の 4 つの優先順位クラスをサポートする Win32 します。
  • アイドル状態。
  • 標準
  • High
  • リアルタイム
アイドル状態のシステム監視アプリケーションまたはスクリーン セーバーの正しい優先順位がします。

通常の優先順位クラスがない特別なスケジューリング ニーズを持つプロセスを示す、既定です。

優先度の高いを正常に実行するための即時実行が必要なタイム クリティカルなタスクを実行するプロセスを示します。 優先度の高いクラスのプロセスのスレッドにはスレッドまたはアイドル状態の通常の優先順位クラスのプロセスのよりも優先します。 例は、Windows のタスク リスト、オペレーティング システムの負荷に関係なく、ユーザーが呼び出されるとすばやく応答する必要があります。 細心の注意、優先度の高いクラスを使用するため使用優先度の高いクラス CPU に拘束されるアプリケーションで利用可能なほぼすべてのサイクルは使用できます。

リアルタイムの優先順位を最高の可能な優先順位を持つプロセスを示します。 リアルタイムの優先順位クラス プロセスのスレッドには、重要なタスクを実行するオペレーティング システム プロセスを含むすべてのプロセスのスレッドよりも優先します。 たとえば、リアルタイム プロセスを実行間隔を非常に簡単な可能性がディスク キャッシュをフラッシュさせたりの応答を停止するマウスならないより多い。 この優先順位を使用しないでほとんど。

プロセスの優先度 CreateProcess API 呼び出しのパラメーターの 1 つを割り当てることによって設定されています。

次の例は、[Windows NT 4. 0 およびそれ以降の Windows オペレーティング システムが、アイドル状態の優先順位を使用して Windows NOTEPAD アプリケーションを実行します。 プロセスの優先順位は CreateProcess() に渡される 'dwCreationFlags' 変数によって制御されます。 DEFINEs、4 つのサポートされている優先順位クラスのサンプル プログラムの先頭に記載します。

1 回 Notepad.exe を実行中、優先順位を調べ、Windows タスク マネージャーを起動、[プロセス] タブをクリックして、メモ帳を右クリックし、ポップアップ メニューの ' 優先度の設定 '] をクリックします。

メモ帳を完全修飾パス名の 'File2Run' の変数の代入ステートメントで変更があります。

サンプル コード

   #DEFINE NORMAL_PRIORITY_CLASS 32
   #DEFINE IDLE_PRIORITY_CLASS 64
   #DEFINE HIGH_PRIORITY_CLASS 128
   #DEFINE REALTIME_PRIORITY_CLASS 1600

   DECLARE INTEGER CreateProcess IN kernel32.DLL ;
      INTEGER lpApplicationName, ;
      STRING lpCommandLine, ;
      INTEGER lpProcessAttributes, ;
      INTEGER lpThreadAttributes, ;
      INTEGER bInheritHandles, ;
      INTEGER dwCreationFlags, ;
      INTEGER lpEnvironment, ;
      INTEGER lpCurrentDirectory, ;
      STRING @lpStartupInfo, ;
      STRING @lpProcessInformation

   DECLARE INTEGER GetLastError IN kernel32.DLL

   * Startup info is 68 bytes, of which we need to
   * initially populate the 'cb' or Count of Bytes member
   * with the overall length of the structure.
   * The remainder should be 0-filled.
   START = long2str(68) + REPLICATE(CHR(0), 64)

   * PROCESS_INFORMATION structure is 4 longs,
   * or 4*4 bytes = 16 bytes, which we'll initially zero.
   process_info = REPLICATE(CHR(0), 16)

   * Start a copy of NOTEPAD (EXE name must be null-terminated)
   File2Run = "C:\WINNT\NOTEPAD.EXE" + CHR(0)

   * Call CreateProcess, obtain a process handle. Treat the
   * application to run as the 'command line' argument, accept
   * all other defaults. Important to pass the start and
   * process_info by reference.
   RetCode = CreateProcess(0, File2Run, 0, 0, 1, ;
      IDLE_PRIORITY_CLASS, 0, 0, @START, @process_info)

   * Unable to run, exit now.
   IF RetCode = 0
      =MESSAGEBOX("Error occurred. Error code: ", GetLastError())
      RETURN
   ENDIF

   ********************
   FUNCTION long2str
   ********************
   * passed : 32-bit non-negative numeric value (m.longval)
   * returns : ascii character representation of passed
   *    value in low-high format (m.retstr)
   * example :
   *   m.long = 999999
   *   m.longstr = long2str(m.long)
   PARAMETERS m.longval

   PRIVATE i, m.retstr

   m.retstr = ""
   FOR i = 24 TO 0 STEP -8
      m.retstr = CHR(INT(m.longval/(2^i))) + m.retstr
      m.longval = MOD(m.longval, (2^i))
   NEXT
   RETURN m.retstr
						

関連情報

高度な"Windows"、小倉 Richter、マイクロソフト プレス、ページ 92-103、第 3 版 1997、ISBN: 1-57231-548-2

プロパティ

文書番号: 193846 - 最終更新日: 2005年1月27日 - リビジョン: 3.4
この資料は以下の製品について記述したものです。
  • Microsoft Visual FoxPro 3.0b Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
  • Microsoft Visual FoxPro 7.0 Professional Edition
  • Microsoft Visual FoxPro 8.0 Professional Edition
  • Microsoft Visual FoxPro 9.0 Professional Edition
キーワード:?
kbhowto kbmt KB193846 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:193846
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com