1
我有一個小的控制檯應用程序,我想在C#中讀取輸出。因此我創建了這段代碼片段。命令提示符打開,但不顯示任何內容。System.Diagnostic.Process中的死鎖
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
process.StartInfo.FileName = DirectoryPath + "Test.exe";
process.StartInfo.Arguments = "-showAll";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.WaitForExit(2000);
String strOutput = process.StandardOutput.ReadToEnd();
如果我刪除UseShellExecute
,RedirectStandardOutput
最後一行,在命令提示符下打開並顯示在Test.exe
,但我需要的輸出字符串,所以我不得不使用這些屬性來讀取StandardOutput
我也嘗試設置2秒的超時(process.WaitForExit(2000)
),但空的命令提示符在2秒後沒有關閉。
如果我在調試模式下手動關閉空命令提示符,那麼變量strOutput會提供我所需的信息。