У меня есть простое приложение WPF, которое связывается с другой консольной программой. Я использую Process.Diagnostic
для запуска консольного приложения. Это консольное приложение имеет подсказку, поэтому я могу отправить ввод через StandardInput
и прочитать результат через StandardOutput
.
Я хочу запустить консольное приложение только один раз (поддерживать его все время), когда приложения WPF загружаются и продолжают отправлять ввод и считывать вывод.
У меня есть какой-то кусок кода, но я не знаю, как все это собрать.
Проблема в том, что после отправки ввода я хочу дождаться появления подсказки, прежде чем я начну читать вывод построчно, чтобы у меня был полный результат. Я знаю, что могу проверить, ожидает ли процесс ввода:
foreach (ProcessThread thread in _proccess.Threads)
{
if (thread.ThreadState == System.Diagnostics.ThreadState.Wait
&& thread.WaitReason == ThreadWaitReason.UserRequest)
{
_isPrompt = true;
}
}
Но куда мне поместить этот код, чтобы проверить, изменился ли ThreadState
? В отдельной ветке и как это сделать?
Я надеюсь, что кто-то может пролить свет на эту проблему.
Заранее спасибо.