1
저는 작은 콘솔 응용 프로그램이있어서 C#의 출력을 읽고 싶습니다. 따라서이 코드 스 니펫을 만들었습니다. 명령 프롬프트가 열리지 만 아무 것도 표시되지 않습니다. 내가 UseShellExecute
, RedirectStandardOutput
과 마지막 줄을 제거하면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();
는, 명령 프롬프트가 열리고 Test.exe
이 표시됩니다,하지만 난 문자열로 출력이 필요하고 그래서 나는이 StandardOutput
또한 2 초 (process.WaitForExit(2000)
)의 시간 제한을 설정하려고했지만 빈 명령 프롬프트가 2 초 후에 닫히지 않습니다.
디버그 모드에서 빈 명령 프롬프트를 수동으로 닫으면 변수 strOutput에 요청 된 정보가 있습니다.