Я пытаюсь создать дочерний процесс с перенаправленным вводом и выводом (как описано здесь - http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx).
Для людей, которые не хотят читать исходный код на этомстраница, автор использует анонимные каналы для перенаправления ввода и вывода дочернего процесса. Родительский процесс записывает на вход дочернего процесса и считывает из вывода дочернего процесса.
В этом коде, однако, программазакрывая каналы после чтения и записи (в WriteToPipe и ReadFromPipe), так что фактически программа просто читает файл, выгружает его в поток ввода дочернего процесса и затем читает ответ дочернего процесса.
Теперь, чтоm ищет код, в котором мы не будем закрывать каналы, но мы будем постоянно публиковать запросы и читать ответ дочернего процесса (в отличие от выполнения всего 1 запроса).
Я пробовал несколько модификаций дляисходный код приведен по ссылке размещенной выше, но что бы я ни пытался, программа всегда зависает при звонкеReadFile () в функции ReadFromPipe () (вероятно, она ожидает, когда ребенок выйдет из системы, но, как я уже сказал, мне нравится получать ответ дочернего элемента, а затем отправлять ему другие запросы).Я могу справиться с этим?
Обновление:
Может кто-нибудь хотя бы сказать мне, является ли использование класса .NET Process с RedirectStandardInput
и RedirectStandardOutput
хорошим вариантом?