用途:本技能介绍 .NET 11 对 System.Diagnostics.Process 的新增 API,用于简化在 .NET 11 及以上项目中启动、等待、捕获输出或后台运行外部进程。目标框架为 net11.0。
主要能力:Process.Run / RunAsync 启动进程并等待退出,返回 ProcessExitStatus,不捕获输出;Process.RunAndCaptureText / RunAndCaptureTextAsync 启动进程并同时捕获标准输出与错误,降低流重定向死锁风险;Process.StartAndForget 启动后可立即释放句柄资源,返回进程 ID;实例方法 ReadAllText、ReadAllBytes、ReadAllLines 及其异步版本可直接读取 stdout/stderr,避免管道缓冲溢出死锁。
新增类型:ProcessExitStatus、ProcessTextOutput、ProcessOutputLine。ProcessExitStatus 无统一成功属性,需按外部命令约定解释 ExitCode。
ProcessStartInfo 新属性:KillOnParentExit 使子进程随父进程退出而终止,需 UseShellExecute = false;InheritedHandles 精确控制句柄继承;StartDetached 使进程脱离父终端或作业会话。
使用限制:这些 API 仅在 .NET 11 及以上可用;使用 ProcessStartInfo 重载捕获输出时需自行设置 RedirectStandardOutput 和 RedirectStandardError;StartAndForget 在 UseShellExecute 或任一重定向标志为 true 时抛 InvalidOperationException;KillOnParentExit、InheritedHandles、StartDetached 均要求 UseShellExecute = false。平台支持、性能影响及具体调用示例请以官方文档为准,本资料未提供的细节暂未说明。
适用场景:需要在 .NET 11 中编排外部命令、安全捕获子进程输出、管理子进程生命周期或启动即忘的后台任务时使用。