타사 콘솔 응용 프로그램을 사용하여 주기적으로 데이터를 콘솔에 한 줄씩 출력합니다. 출력 데이터를 구문 분석 할 수 있도록 내 응용 프로그램을 통해 실행하려고 시도했을 때 응용 프로그램이 종료 된 후에 만 OutPutstream을 읽을 수 있다는 것을 알았습니다.콘솔 응용 프로그램이 주기적으로 출력을 플러시하지 않습니다.
5 초마다 콘솔에 뭔가를 출력하고 예상대로 작동하는 C# 콘솔 응용 프로그램으로 응용 프로그램을 테스트했습니다. 제가 말하는 제 3 자 프로세스는 Java 또는 C++ (확실하지 않음)로 작성되었지만 .NET이 콘솔 어플리케이션에서 기대하는 표준을 따르지 않는 것 같습니다.
콘솔 응용 프로그램에서 데이터를 읽는 다른 방법이 있습니까?
편집 : 나는 WPF 응용 프로그램에서 프로세스를 호출하고 있습니다. 따라서 비동기 읽기가 필요합니다.
편집 2 : 콘솔 응용 프로그램은 USB 장치 (가속도계 - http://www.gcdataconcepts.com/)에서 데이터를 읽습니다.
public void RunProcess()
{
Process process = new Process();
process.StartInfo.FileName = "consoleApp.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;
process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
process.Start();
process.BeginOutputReadLine();
}
private void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
if (!string.IsNullOrEmpty(outLine.Data))
{
Dispatcher.Invoke(new Action(() =>
{
textBlock1.Text += outLine.Data + Environment.NewLine;
}), System.Windows.Threading.DispatcherPriority.Normal);
}
}
, 당신이이 비슷한 질문에 찾을 수 있습니다 ... http://stackoverflow.com/a/11675360/361464 –