当衍生进程(“子进程”)启动更多新进程(“孙子进程”)时,通过 via 启动的进程Process.Start
似乎有大约 26 秒的延迟 - 我正在尝试找到解决此问题的方法。具体来说,当原始进程(“父进程”)是 ASP.Net 网站或 Windows 服务(两者都尝试过)时,就会发生这种情况。
我们正在尝试运行服务器端命令行工具来收集信息,在文件系统中进行修改,并在“子”完成后继续其他进程。当通过命令行直接创建“子”时,没有延迟,并且在某些命令行参数下,“子”不会产生新进程,也没有延迟。但是,使用其他参数时,“子”会产生“孙子”(与自身相同的可执行文件,但我们无法修改其代码),并且在第一个进程之前似乎有 25-30 秒(通常为 26 秒)延迟启动,然后正常运行。
我试过修改UseShellExecute
属性、CreateNoWindow
属性和WindowStyle
属性,没有效果。 ErrorDialog
并且RedirectStandard*
属性是假的。
我正在使用的代码如下:
using (Process p = new Process())
{
p.StartInfo = new ProcessStartInfo(exePath, args)
{
WorkingDirectory = workingDirectory,
UseShellExecute = true,
CreateNoWindow = true,
};
p.Start();
p.WaitForExit();
}
哦,我认为这并不重要,因为我在其他地方看到了这个问题(但没有解决方案),但是我使用的 exePath 指向 msysgit 的 git.exe。