【发布时间】:2016-01-22 03:10:28
【问题描述】:
我想知道是否有其他替代方法可以在 C# 中捕获进程输出。 我有以下代码
Process __process = new Process();
__process.StartInfo.Verb = "runas";
__process.StartInfo.FileName = "some file path here";
__process.StartInfo.UseShellExecute = true;
__process.Start();
__process.WaitForExit(300000);
此处 UseShellExecute 设置为 true 的原因是动词“runas”需要以管理员身份运行。结果,我无法再重定向程序的标准输出。 如果我不能使用 StandardOutput,还有哪些其他方法可以捕获 Process 的输出?我想过让程序写入一个文件,然后从该文件中读取,但这似乎效率不高。
【问题讨论】:
-
虽然我确实倾向于在我的代码中争取效率...这个过程需要经常运行吗?输出是否会非常大并且需要相当长的时间才能读入?如果没有,那么如果可以的话,我会坚持使用 File I/O