5

を通じてプログラムを実行していますProcess.Start()。出力をリダイレクトして行を取得しようとしました。

ただし、今のところ、必要なのは最後の行だけです。

最後の行だけを読む方法はありますか、それとも全体を読む必要がありredirectStandaroutput = false;ますか?

もっと簡単な方法はありますか?

どうしても行かなければならない場合はprocess.Redirect()、MSDN やその他のソースのoutputdatareceivedイベントの例に従ってみましたが、出力は最後にコンソールに書き込まれるだけで、非同期ではありません。

4

1 に答える 1

1

process.Start()私が知っている出力を読み取る唯一の方法は、使用することです.RedirectStandardInput = true;。また、標準出力はストリーム オブジェクトであるため、最後の行はストリーム全体を読み取ることによってのみ読み取ることができます。

ところでproc.StandardOutput.ReadToEnd()、プロセスが終了するまでスレッドがハングします。読み取り中にプロンプ​​トが表示されると、アプリがハングアップします。

于 2012-05-24T12:23:17.317 に答える