| ■19090 / ) |
Re[2]: Processの標準出力をリアルタイム取得 |
□投稿者/ れい (555回)-(2008/05/20(Tue) 11:11:23)
|
2008/05/20(Tue) 11:22:56 編集(投稿者) 2008/05/20(Tue) 11:13:27 編集(投稿者)
■No19086 (シャノン さん) に返信 > ■No19072 (鶏唐揚 さん) に返信 > > .NET Framework 1.1 でもできる範囲のコードで。
いやそのコードはマルチスレッドですから:D
> しかし出力は細切れになってしまう。
素直にStreamReaderとWaitHandle使いましょうよ
まぁこの辺はいくらでも何とでもなりますよ>鶏唐揚さん シャノンさんの最初のコードのように、Processに内蔵のイベントつかってもいいですし、 StreamReaderを非同期でよんでもいいですし、 Streamを非同期で読んでもいいですし、 部分的にマルチスレッドにしてもいいですし。 自分の実装に合ったものを選べばよいでしょう。
追記。
> 1KBごとに取得・表示を行っているので改行いれたら細切れになってたということですか
違います。 Readはいくつ読むのか不定というだけです。
さらに追記。
シャノン産のコード。
string output = Console.OutputEncoding.GetString(aa.buffer, 0, count);
ここはダメですねぇ。 GetDecoderしてDecoder取っておかないと、文字が化けちゃいます。
|
|