想象一下,你有一个运行优先级为AboveNormal的Windows进程A,它启动另一个进程B而不指定优先级.进程B的优先级是否继承了进程A的优先级?那么,流程B的优先级是什么?高于正常,正常还是其他?
如果未指定,则在某些情况下会继承优先级.
如果调用进程是在它发生IDLE_PRIORITY_CLASS或BELOW_NORMAL_PRIORITY类.否则,除非在CreateProcess调用期间指定,否则它将获得NORMAL_PRIORITY_CLASS.
MSDN在CreateProcess的dwCreationFlags上说:
该参数还控制新进程的优先级,这是用来确定进程的线程的调度优先级.有关值列表,请参阅GetPriorityClass.如果没有指定的优先级标志,则优先级默认为NORMAL_PRIORITY_CLASS除非优先级创建进程的是IDLE_PRIORITY_CLASS或BELOW_NORMAL_PRIORITY_CLASS.在这种情况下,子进程接收调用进程的默认优先级.
因此答案是NORMAL优先级.基本上任何高于正常水平的东西都不会传递给孩子.