首页 >后端开发 >C++ >如何实时捕获.NET应用程序的控制台输出?

如何实时捕获.NET应用程序的控制台输出?

Linda Hamilton
Linda Hamilton原创
2025-01-29 12:36:101015浏览

How Can I Capture Console Output from a .NET Application in Real Time?

实时捕获.NET应用程序(C#)的控制台输出

从.NET应用程序调用外部进程时,捕获其控制台输出对于监控其进度和访问其结果至关重要。.NET框架提供了一种便捷的机制来实现此目的,利用ProcessStartInfo.RedirectStandardOutput属性。

要实时捕获控制台输出,无需中间文件存储,请按照以下步骤操作:

  1. 创建Process对象: 此对象代表要调用的外部控制台应用程序。
  2. 配置FileName和Arguments属性: 指定可执行文件路径和启动应用程序的参数。
  3. 将UseShellExecute设置为false: 禁用shell执行,以便更精细地控制进程。
  4. 启用RedirectStandardOutput: 将此属性设置为true,以便将应用程序的标准输出重定向到当前.NET进程。
  5. 启动进程: 调用Process.Start()方法启动应用程序。
  6. 接收输出: 使用Process.StandardOutput.ReadToEnd()方法检索应用程序生成的所有输出。

这种方法允许您实时监控外部控制台应用程序的进度和结果,而不会中断其执行或使操作系统充斥临时文件。

代码示例:

<code class="language-csharp">Process compiler = new Process();
compiler.StartInfo.FileName = "csc.exe";
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs";
compiler.StartInfo.UseShellExecute = false;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.Start();

string output = compiler.StandardOutput.ReadToEnd();
Console.WriteLine(output);

compiler.WaitForExit();</code>

以上是如何实时捕获.NET应用程序的控制台输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn