You need to enable JavaScript to run this app. .Net Core C# 使用Tmds.ExecFunction执行子进程的PID获取及输出问题
优惠活动
大模型
产品
解决方案
定价
更多

.Net Core C# 使用Tmds.ExecFunction执行子进程的PID获取及输出问题

.NET Core 子进程隔离执行代码的问题与解决

背景

出于内存隔离与稳定性考虑,在 .NET Core C# 项目中需要以子进程而非线程的形式执行部分方法或类,当前使用的实现库为 Tmds.ExecFunction。

问题现象

  • 调用 ExecFunction.Run(() => new NewSubProcessClass()); 时,程序可正常生成子进程,在 Linux Docker 容器中也能正常输出控制台内容,但无法获取子进程的PID。
  • 尝试换用签名为 public static Process Start(Action action, Action<ExecFunctionOptions> configure = null); 的 ExecFunction.Start 方法,将原有调用替换为 Process process = ExecFunction.Start(() => new NewSubProcessClass()); 后,完全无法输出控制台内容。

解决方案

经@bazzilic 建议,在拿到 Start 方法返回的 Process 实例后,补充调用 process.WaitForExit() 即可解决控制台无输出的问题。

内容的提问来源于stack exchange,提问作者Willi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 08:57:03