C# 异步进程读取无法读取提示

C# 异步进程读取无法读取提示,c#,asynchronous,process,prompt,C#,Asynchronous,Process,Prompt,我正在为一个现有应用程序开发一个简单的包装器,通过异步读取和响应它的提示来实现自动化 异步读取是通过使用Process.BeginOutputReadLine和Process.BeginErrorReadLine完成的,这里有一个要点: 读取事件只在读取一整行时返回,因此当需要用户输入时,不会返回提示,程序将挂起。即使不是一整行,我如何阅读提示?我甚至可以检测程序何时需要用户输入吗?毫不奇怪BeginOutputReadLine是行缓冲的。您可能需要改用synchronous.Read()。您需

我正在为一个现有应用程序开发一个简单的包装器,通过异步读取和响应它的提示来实现自动化

异步读取是通过使用
Process.BeginOutputReadLine
Process.BeginErrorReadLine
完成的,这里有一个要点:


读取事件只在读取一整行时返回,因此当需要用户输入时,不会返回提示,程序将挂起。即使不是一整行,我如何阅读提示?我甚至可以检测程序何时需要用户输入吗?

毫不奇怪
BeginOutputReadLine
是行缓冲的。您可能需要改用synchronous
.Read()
。您需要与程序的所有者联系,请求更改代码。需要添加一行,fflush(stdout);在输出提示的代码行之后。它确保在输出Fuff.ItSpPiNuk中刷新提示,在考虑重新实现为同步之前,我如何知道我能<代码> > Read()<代码>?如果它正在等待用户输入,它不会也阻止我吗?Hans Passant,我不想修改应用程序。如果我选择改变它,为什么我首先需要一个包装\