.NET で子プロセスの出力を効率的に取得する
この記事では、コンソール アプリケーションを子プロセスとして起動し、.NET 環境内でその出力を取得する方法を検討します。 イベント ハンドラーとリダイレクトは一般的なアプローチですが、信頼性が低いことが判明する場合があります。
簡単な解決策には、子プロセスの標準出力ストリームを直接読み取ることが含まれます。
<code class="language-csharp">return p.StandardOutput.ReadToEnd();</code>
この簡潔なメソッドは、出力全体を読み取り、文字列として返します。
あるいは、より詳細に制御するために、イベント処理では行ごとのアプローチが提供されます。
<code class="language-csharp">process.OutputDataReceived += (sender, args) => Console.WriteLine("received output: {0}", args.Data);</code>
このメソッドは出力を段階的に処理し、リアルタイム処理を可能にします。 これらの手法のどちらを選択するかは、アプリケーションの特定のニーズと、出力の即時取得と完全な取得のどちらが優先されるかによって決まります。
以上が.NET で子プロセスの STDOUT を効果的にキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。