是否有更有效(时间复杂)的方法而不是StandardOutput.ReadToEnd?

时间:2013-09-02 11:55:30

标签: c# performance time-complexity

我想让我的项目更快。我使用了秒表类并计算了这些代码块之间的时间。大部分时间都花在string output = p.StandardOutput.ReadToEnd();行。有没有建议使用而不是这个代码?

Process p = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = DBUpdater_Adresi;         
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
p.StartInfo = startInfo;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

1 个答案:

答案 0 :(得分:3)

大部分时间花在该行上的原因是它等待您启动的程序的整个执行。它不需要时间,因为它效率低,需要时间,因为它正在等待另一个过程。

最后一行等待进程退出,但从关闭输出流到进程结束时的时间非常少。