【发布时间】:2015-07-01 23:14:11
【问题描述】:
我一直在使用 C# 处理流程(使用 Process 和 ProcessStartInfo)。现在,只有一个问题真正困扰着我,但仍未找到解决方法。
当应用程序“等待”某些输入时,StandardOutput 将挂起。 这意味着,如果您使用 ReadToEnd,它将永远不会返回(因为实际的输入窗口是不可见的)。
现在,当我使用 StandardInput 提供输入时,这会产生问题。例如:
- 使用 C# 启动进程
- 使用 StandardInput 输入命令。
- 开始读取输出流。
- 根据最后一个输出运行另一个。
现在这就是问题所在:我无法判断进程是在等待输入还是仍在生成输入,因为我的进程“卡住”了从 StandardOutput 读取数据(它在同一个线程上完成)。
我需要在我的命令运行后读取输出,运行一些算法,然后根据之前的命令输出运行另一个命令。
是否有任何方法可以检测正在运行的进程是否已完成加载我的命令并等待新输入?和 cmd 一样吗?
【问题讨论】: