私は、子プロセスを開始するのにSystem.Diagnostics.Process.Start
を使用する既存のコードをいくつか持っています。また、そのプロセスの出力ストリームをキャプチャするのにProcessStartInfo.RedirectStandardOutput
を使用します。これはうまく動作しています。C#から開始されたプロセスの破棄
また、job objectに添付する必要があります。私もこれを行うコードを持っています、そして、それはプロセスが既に仕事に結びついていないなら、それはうまくいきます。
残念ながら、必ずしもそうではないので、CREATE_BREAKAWAY_FROM_JOB
フラグを使用してプロセスを作成する必要があります。これは私が立ち往生している場所です。
私はそれを見ると、ここから前方に2つの方法があります。
- どういうわけかその1つの余分な少しのフラグを渡すために
Process.Start
を納得させるには。 - クラスを放棄すると、
CreateProcess
に戻って出力リダイレクトをやり直します。
私はこれらのどちらをやるべきか、またうまくいくかもしれない中間地点があるかどうかはわかりません。誰かがこれまでにこれにぶつかり、いくつかのアイデアやコードを持っていますか?
どのようにプロセスをジョブにアタッチしていますか?同様の方法でジョブをプロセスから切り離すことは可能ですか? –
私は 'AssignProcessToJobObject'を使用しています。悲しいことに、ジョブは一方通行です。プロセスに割り当てられていないジョブに割り当てられたプロセスは、そのフラグを 'CreateProcess'に渡すことができない限り、子プロセスは親のジョブを継承します。 – Miral