-1

通常、記事/例で説明されている4つのフラグがあります。

 NORMAL_PRIORITY_CLASS           = $00000020;
  {$EXTERNALSYM NORMAL_PRIORITY_CLASS}
  IDLE_PRIORITY_CLASS             = $00000040;
  {$EXTERNALSYM IDLE_PRIORITY_CLASS}
  HIGH_PRIORITY_CLASS             = $00000080;
  {$EXTERNALSYM HIGH_PRIORITY_CLASS}
  REALTIME_PRIORITY_CLASS         = $00000100;
  {$EXTERNALSYM REALTIME_PRIORITY_CLASS}

それらのいずれかを使用できますか: http://msdn.microsoft.com/en-us/library/ms684863( v = VS.85).aspx / http://msdn.microsoft.com/en-us/library/その関数のms683211(v = VS.85).aspx

これら2つのリンクの違いは何ですか?

CreateProcess関数でエラーが発生するのはなぜですか:互換性のないタイプ:「Cardinal」および「TThreadPriority」がある場合は、次のようにします。

var Priority : Cardinal
Priority:=NORMAL_PRIORITY_CLASS;
CreateProcess(PChar(Path), Pchar(Par), nil, nil, false,
Priority, nil, nil, StartUpInfo, ProcessInfo);

TThreadPriorityとは...

ありがとう!

4

1 に答える 1

4

GetPriorityClass関数のドキュメントで言及されている 6 つのフラグのいずれかを使用できます。RTL が 2 つのフラグを省略する理由は、それらが Windows 9x/ME でサポートされていないためです (これは D2007 で、おそらくそれ以降のバージョンにはこれらのフラグがあります)。

プロセス作成フラグの任意の組み合わせで優先度クラスのフラグを立てることができますor(ドキュメントに記載されている場合を除きます - あなたが提供した最初のリンク)。


TThreadPriorityTThread「classes.pas」で使用される列挙型であり、プロセス作成フラグとは関係ありません。質問に投稿されたコードには問題がないようです (質問へのコメントを参照してください)。

于 2011-07-28T02:18:36.130 に答える