Я пытаюсь запустить новый процесс, используя C # с Mono, и все еще могу записать ввод в этот новый процесс.
Например, допустим, у меня есть простая программа, которая ожидает ввода с клавиатуры.
Как только он получен, он сам закрывается и сразу же перезапускается, используя следующий код:
var self = Assembly.GetExecutingAssembly().Location;
Console.WriteLine("Press a key to restart...");
Console.ReadKey();
Process p = new Process();
p.StartInfo.FileName = self;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = false;
p.StartInfo.RedirectStandardInput = false;
p.Start();
Thread.Sleep(500);
Environment.Exit(0);
И он делает это снова и снова.
Кроме того, я заблокирован после первого ввода.
Однажды я запустил программу с помощью следующей команды:
mono dummy_program.exe
и я нажимаю любую клавишу, программа закрывается и перезагружается, но я «потерял» фокус на новом экземпляре программы. Невозможно отправить ему какой-либо вход.
Что не так с моим кодом?