Как отправить Ctrl + C процессу в C #?

Я пишу класс-оболочку для исполняемого файла командной строки. Этот exe принимает ввод от stdin до тех пор, пока я не нажму ctrl + c в оболочке командной строки, и в этом случае он печатает выходные данные на основе ввода в stdout. Я хочу смоделировать нажатие ctrl + c в коде c #, посылая команду kill объекту процесса .Net. Я пытался вызвать Process.kill (), но, похоже, это ничего не дает мне в StandardOutput StreamReader процесса. Может ли быть что-нибудь, что я не делаю правильно? Вот код, который я пытаюсь использовать:

ProcessStartInfo info = new ProcessStartInfo(exe, args);
info.RedirectStandardError = true;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
Process p = Process.Start(info);

p.StandardInput.AutoFlush = true;
p.StandardInput.WriteLine(scriptcode);

p.Kill(); 

string error = p.StandardError.ReadToEnd();
if (!String.IsNullOrEmpty(error)) 
{
     throw new Exception(error);
}
string output = p.StandardOutput.ReadToEnd();

однако вывод всегда пуст, хотя я получаю данные из stdout, когда запускаю exe вручную. редактировать: это C # 2.0 кстати

Ответы на вопрос(5)

Ваш ответ на вопрос