現在、STDErrorとSTDOutputの両方のリダイレクトに問題があります。私がしたいのは、エラーがスローされないと、通常の出力とともにリッチテキストボックスに印刷するエラーがある場合です。STDエラーとSTDOutのリダイレクト
私が午前問題は、私はSDTエラーをリダイレクトするために行を追加した場合ということです:
string error = process1.StandardError.ReadToEnd();
rchsdtOut.Text = error;
その後、私の通常のSTDアウトは、テキストFILDにリダイレクトされませんが、そのエラーが発生した場合印刷されます。
process1 = new System.Diagnostics.Process();
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.RedirectStandardOutput = true;
process1.StartInfo.RedirectStandardError = true;
process1.StartInfo.CreateNoWindow = true;
process1.StartInfo.FileName = "java.exe ";
//String abc = txtSingleBar.Text.Replace("\\", "/");
toLoad = lstBarToLoad.Items[i].Text;
process1.StartInfo.Arguments = "-Xmx512M -jar";
process1.StartInfo.Arguments += toLoad;
Console.WriteLine(process1.StartInfo.Arguments);
try
{
process1.Start();
process1.OutputDataReceived += (s, a) => myMethod(a);
process1.BeginOutputReadLine();
string error = process1.StandardError.ReadToEnd();
rchsdtOut.Text = error;
}
テキストにイベントを書き込むための方法はBascally私が欲しいもの
private void myMethod(DataReceivedEventArgs e)
{
if (e.Data != null)
{
Action action =() => rchsdtOut.Text += "\r\n" + e.Data.ToString();
rchsdtOut.BeginInvoke(action, null);
Console.WriteLine(e.Data.ToString());
}
}//end of private
をFILD 1が発生した場合、両方をリダイレクトするSDTOutとSDTErrorです。
アイデア?
process1.OutputDataReceived += (s, a) => myMethod(a);
process1.BeginOutputReadLine();
をして、これを追加します:
投稿されたコードに構文エラーがあるようです。コンパイルできるコードを投稿してください。 – Oded
あなたは何を意味するのかよく分かりません。それは私のために準拠しています。 – user1158745