打印输出与Process一起使用

时间:2013-04-10 09:17:39

标签: c# .net process

我发现了一些像这样的代码。它运行一个进程然后打印它写入标准输出的内容。问题是,它不会打印任何,直到进程退出,这可能需要很长时间(或根本不会)。因此,我宁愿打印输出AS IT GOES。我怎么能这样做?

var startInfo = new ProcessStartInfo("cmd", "/c sleepy.bat")
    {RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true };
var p = new Process(){StartInfo = startInfo};
p.Start();
string output = p.StandardOutput.ReadToEnd();
Console.WriteLine(output);

sleepy.bat可能

的地方
echo "About to execute really slow query.."
sleep 20
echo "Finished!"

1 个答案:

答案 0 :(得分:2)

尝试使用p.StandardOutput.BeginOutputReadLine()。您将从OutputDataReceived事件中的过程收到输出。

有关扩展示例,请查看MSDN article