Windows服务执行可执行文件

我有一个Windows服务,只是监听某些事件。 一旦被触发,服务就执行一个进程(.exe)。

我的问题:在Windows Server 2003上,这很好。 可执行文件的CPU上升到20%左右,工作速度合理。

在Windows Server 2008上,它的工作速度比较慢(至less),如果以相同的方式完成,则可执行文件的CPU大约为1%。 但是,只需运行可执行文件(不需要监听服务)就可以像在Windows Server 2003上一样快速地运行。

这似乎是与Windows Server 2008不会给可执行文件相同的优先级的问题,但在任务pipe理器(CPU使用率除外)上可以看到没有什么不同。 这也可能是另一回事。

任何想法可以解决这个恼人的问题?

你有没有明确指定进程的优先级,当你派遣创build一个新的进程CreateProcess() – 参数dwCreationFlags – 如果指定NORMAL_PRIORITY_CLASS (默认)它从父进程inheritance?