我有一些现有代码使用 System.Diagnostics.Process.Start
启动子进程。它还使用 ProcessStartInfo.RedirectStandardOutput
来捕获该进程的输出流。这一切都很好。
我还需要将其附加到 job object .我也有执行此操作的代码,只要该流程尚未附加到作业,它就可以正常工作。
不幸的是,情况并非总是如此,因此我需要使用 CREATE_BREAKAWAY_FROM_JOB
标志创建流程。这就是我被困的地方。
在我看来,从这里开始有两种可能的方法:
- 以某种方式说服
Process.Start
传递那个额外的小标志。 - 放弃
Process
类,回退到原始CreateProcess
,并(以某种方式)重做输出重定向。
我不太确定如何执行这些中的任何一个,或者是否有一些中间立场也可能有效。有没有其他人遇到过这个问题并且有一些想法/代码?
最佳答案
目前,我选择了选项 #2。我想我已经弄清楚如何进行输出捕获,尽管我还没有对其进行广泛的测试。
不过,仍然对其他想法感兴趣。
关于c# - 打破从 C# 开始的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531018/