netstandard.dllこの記事の内容アプリケーションのテキスト出力の読み取りに使用されるストリームを取得します。StreamReader。ストリームがリダイレクト用に定義されていません。設定されていることを確認してください。使用した非同期読み取り操作のために開いています。コマンドを実行し、その標準出力を例のコンソールウィンドウにリダイレクトします。標準ストリームにテキストを書き込む場合、そのテキストは通常、コンソールに表示されます。ストリームをリダイレクトすることにより、プロセスの出力を操作または非表示にすることができます。テキストをフィルター処理したり、異なる形式を設定したり、コンソールと指定したログファイルの両方に出力を書き込むことができます。trueに設定する必要があります。ストリームからの読み取りでは、例外がスローされます。ストリームは、同期的または非同期的に読み取ることができます。メソッドは、プロセスの出力ストリームに対して同期読み取り操作を実行します。ストリームに書き込むか、ストリームを閉じるまで完了しません。ストリームで非同期の読み取り操作を開始します。このメソッドは、ストリーム出力に対して指定されたイベントハンドラーを有効にし、すぐに呼び出し元に戻します。これにより、ストリーム出力がイベントハンドラーに送られている間に他の処理を実行できます。ストリームから読み取った呼び出し元と、そのストリームに書き込む子プロセスとの間に依存関係が生じます。これらの依存関係によって、デッドロック状態が発生する可能性があります。呼び出し元が子プロセスのリダイレクトされたストリームから読み取る場合は、子に依存します。呼び出し元は、読み取り操作で、子がストリームに書き込むか、ストリームを閉じるまで待機します。子プロセスは、リダイレクトされたストリームを埋めるために十分なデータを書き込むときに、親に依存します。子プロセスは、親が完全なストリームから読み取るか、ストリームを閉じるまで、次の書き込み操作で待機します。デッドロック状態は、呼び出し元と子プロセスが操作を完了するために互いに待機し、どちらも続行できない場合に発生します。呼び出し元と子プロセスの間の依存関係を評価することによって、デッドロックを回避できます。Write500Linesという名前の実行可能ファイルを起動します。次の例には、ソースコードが含まれています。lines.次の例は、リダイレクトされたストリームから読み取り、子プロセスが終了するまで待機する方法を示しています。呼び出すことによって、デッドロック状態を回避します。呼び出し、子プロセスが、リダイレクトされたストリームを埋めるために十分なテキストを書き込む場合です。親プロセスは、子プロセスが終了するまで無期限に待機します。ストリームから読み取るのを無期限に待機します。'標準出力と標準エラーストリームの両方からすべてのテキストを読み取ると、同様の問題が発生します。次の例では、両方のストリームに対して読み取り操作を実行します。ストリームで非同期の読み取り操作を実行することによって、デッドロック状態を回避します。呼び出し、子プロセスがそのエラーストリームを埋めるために十分なテキストを書き込む場合です。ストリームを閉じるまで無期限に待機します。ストリームから読み取るのを無期限に待機します。lines.非同期の読み取り操作を使用すると、これらの依存関係とデッドロックの可能性を回避できます。2つのスレッドを作成し、各ストリームの出力を個別のスレッドで読み取ることによって、デッドロック状態を回避できます。thread.注意リダイレクトされたストリームでは、非同期および同期読み取り操作を混在させることはできません。リダイレクトされたストリームを非同期モードまたは同期モードで開くと、そのストリームでのすべての読み取り操作は同じモードである必要があります。