-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在那个函数中?

这两个链接有什么区别?

为什么我在 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 回答