2012-01-31 14 views
2

起動したプロセスからエラーメッセージをコンソールに書き込むことはできますか?通常、コンソール内からConsole.Writeline()を使用するのに慣れています。追加のプロセス(別のアセンブリ内)は、コンソールによって操作されるように設計されており、潜在的にGUIを介して操作されることもあります。バックグラウンドスレッドのイベントループからコンソールに書き込む方法


ただし、イベントハンドラ(コールバック)にメソッドを追加すると、Console.WriteLineは機能しません。

現在使用して:

var thread=new Thread(someMethod); 
thread.Start(); 

をその後、コールバックは、コンソールメッセージが行方不明に行くことをここだ、オフクビことがあります。

+0

'Console.WriteLine()'を使っても動作するはずです。エラーが発生していますか? –

答えて

2

Console.WriteLine()も同様に動作します。

更新:

あなたには、いくつかのコンソールアプリケーションの出力をキャプチャしたい場合は、Capturing console output from a .NET application (C#)をご覧ください。

+0

+1:お役立ち情報しかし、別のコンソールアプリ。ちょうど別の内部スレッド。 – sgtz

1

これを正しく理解しているかどうかはわかりません。子プロセスの標準出力から読み込み、親のコンソールに書きたいのですか?次に、Process.StandardOutputプロパティを使用してStreamReaderを取得し、読み始めることができます。

+0

サードパーティのアセンブリを使用する.NETアセンブリです。私はサードパーティの.dllがコールバックイベントのコンソールコンソールデータを吸っているのだろうかと思います。それは可能ですか?私は質問を更新しました。 – sgtz

2

2つのメッセージが混じっていることが気になる場合は、Console.Error.WriteLine()を使用しないでください。実行時にエラーストリームを(たとえば)ファイルにリダイレクトすることができます。

+0

+1:ty。 2つのストリームが混在するかどうか気にしないでください。 1つのストリームがまったく表示されないことを心配しました。ちょうど実行中に情報がコンソールにポップアップ表示されるようにしたい。私は質問を更新しました。 – sgtz

1

あなたは標準の.NETトレースを使用する場合は、app.configを経由ConsoleTraceListenerを設定できます。 このアプローチは、よりこの質問を通じて探求されhttp://msdn.microsoft.com/en-us/library/system.diagnostics.consoletracelistener.aspx

:それは、診断のために非常にうれしいです Redirect Trace output to Console

あなたが言及したように目的。テキストファイルライターなどを接続することができます

+0

+1:ty。それは本当に便利な情報です。問題は、Console.WriteLineでも失敗していることです。私は少し質問を更新しました。 – sgtz

1

これはコンパイルされた外部プロセス、つまり実行ファイルですか?

Processクラスを使用してプロセスを開始している場合、通常はコンソールに書き込まれたテキストを別のストリームにリダイレクトするためのProcess.StandardOutputプロパティを探している可能性があります。

そうでなければ、あなたが話している「プロセス」の種類を明確にすることはできますか?

+0

これは外部のコンパイルされたプロセスではありません。それは知っていると便利です。 – sgtz

関連する問題