我想在.NET服务器端代码中执行一个程序。
到目前为止,我有这个:
Process p = new Process();
p.StartInfo.FileName = "myProgram.exe";
p.StartInfo.Arguments = " < parameter list here > ";
p.Start();
p.Close();
这是一个控制台程序。发生的事情是控制台反复打开和关闭而不会停止。
答案 0 :(得分:3)
你想要,
Process p = new Process();
p.StartInfo.FileName = "myProgram.exe";
p.StartInfo.Arguments = " < parameter list here > ";
p.Start();
p.WaitForExit();
您的代码中发生的事情是您启动该过程并立即关闭它, 你需要的是调用WaitForExit(),它实际上等待进程自己关闭,
在应用关闭之前打印输出:
Process p = new Process();
p.StartInfo.FileName = "myProgram.exe";
p.StartInfo.Arguments = " < parameter list here > ";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
p.WaitForExit();
Console.WriteLine(p.StandardOutput.ReadToEnd());
答案 1 :(得分:2)
答案 2 :(得分:0)
该代码不会产生无限循环。它将启动一个程序,然后立即关闭该过程。 (你可能不想关闭它,而是等待进程结束)。