Запуск исполняемого файла программно .NET - PullRequest
2 голосов
/ 20 июля 2010

Я хотел бы выполнить программу в коде на стороне сервера .NET.

Пока у меня есть это:

    Process p = new Process();  
    p.StartInfo.FileName = "myProgram.exe";
    p.StartInfo.Arguments = " < parameter list here > ";
    p.Start();
    p.Close();

Это консольная программа.Что происходит, так это то, что консоль многократно открывается и закрывается без остановки.

Ответы [ 3 ]

3 голосов
/ 20 июля 2010

Вы хотите,

Process p = new Process();  
    p.StartInfo.FileName = "myProgram.exe";
    p.StartInfo.Arguments = " < parameter list here > ";
    p.Start();
    p.WaitForExit();

, что происходит в вашем коде, это когда вы запускаете процесс и закрываете его сразу же, то, что вам нужно, это вызывать WaitForExit (), который фактически ожидает завершения процесса на своемсобственный,

Чтобы напечатать вывод перед закрытием приложения:

Process p = new Process();  
p.StartInfo.FileName = "myProgram.exe";
p.StartInfo.Arguments = " < parameter list here > ";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
p.WaitForExit();
Console.WriteLine(p.StandardOutput.ReadToEnd());
2 голосов
/ 20 июля 2010

Проверьте класс BackgroundWorker .Вот более подробное руководство / пример его использования.

0 голосов
/ 20 июля 2010

Этот код не будет создавать бесконечный цикл.Он запустит программу, а затем немедленно закроет процесс.(Возможно, вы не захотите закрывать его, а дождитесь завершения процесса).

...