通常在文章/示例中描述了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 ....
谢谢!
答案 0 :(得分:4)
您可以使用GetPriorityClass
函数文档中提到的6个标记之一。 RTL省略了2个标志的原因是它们在Windows 9x / ME上不受支持(这是在D2007中,可能以后的版本有这些标志)。
您可以使用任何进程创建标志组合or
优先级标志(除了文档中提到的 - 您提供的第一个链接)。
TThreadPriority
是'classes_pas'中TThread
中使用的枚举类型,无论如何都与进程创建标志无关。问题中发布的代码似乎没有任何问题(请参阅问题的评论)。