2011-12-16 37 views
4

我有一些现有的代码使用System.Diagnostics.Process.Start来启动子进程。它还使用ProcessStartInfo.RedirectStandardOutput来捕获该进程的输出流。这很多工作正常。我也需要附加到job object。我也有这样做的代码,只要过程尚未附加到作业中,它就可以正常工作。打破从C开始的进程#

不幸的是,情况并非总是如此,所以我需要使用CREATE_BREAKAWAY_FROM_JOB标志创建进程。这是我卡住的地方。

在我看来,还有着两种可能的方式从这里:

  1. 不知何故说服Process.Start通过一个额外的小旗子。
  2. 放弃Process类,回退到原始CreateProcess,并(以某种方式)重新输出重定向。

我不太确定如何做这些,或者如果有一些中间地带,也可能工作。有没有其他人遇到过这种情况,并有一些想法/代码?

+0

你如何将一个过程附加到工作中?是否有可能以类似的方式将工作从工作中分离出来? – 2011-12-16 07:36:43

回答

1

目前,我已经选择了#2。我想我已经制定了如何进行输出捕捉,尽管我还没有对它进行广泛的测试。但是,仍然对替代想法感兴趣。