我正在嘗試將C#/ Mono應用程序的控制檯輸出重定向到gtk#textview。這裏有無數的答案解釋瞭如何將命令的輸出重定向到任何可以設想的輸出設備。不過,我正試圖在當前流程上做同樣的事情。原本應用程序是設計爲命令行,知道我想要一個顯示所有輸出的文本視圖。這是我現在所擁有的:單聲道當前進程的控制檯重定向
class Program
{
Main(string[] args)
{
Program prog = new Program();
Process proc = Process.GetCurrentProcess();
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.EnableRaisingEvents = true;
proc.ErrorDataReceived += prog.DataReceived;
proc.OutputDataReceived += prog.DataReceived;
proc.BeginErrorReadLine();
proc.BeginOutputReadLine();
}
void DataReceived(object sender, DataReceivedEventArgs e)
{
_MainWindow.SendData(e.Data);
}
}
這是正確的做法嗎?現在,我在調用BeginErrorReadLine()
方法時收到以下異常。例外是:Standard Error Can not be redirected
。我不知道這個問題是否僅僅是過程/單調的事情,或者如果我只是做錯了什麼。
我之前看過這個,但我使用的是作者,那麼我只能批量獲取控制檯消息,對不對?我需要的是每條消息獨立發送到textview。 – Freddy 2010-05-20 21:43:22