Запуск внешних процессов в C#

Программирование Запуск внешних процессов в C#

Помечено: 

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 2 нед., 4 дн. назад.

  • Автор
    Сообщения
  • #5851
    @admin

    Небольшая заметка о том, как в C# запускать сторонние приложения и дожидаться их завершения.

    Для вызова внешних программ в C# используется класс System.Diagnostics.Process.
    Для запуска нового процесса нужно его методу Start передать имя запускаемого файла:

    Process p = Process.Start("explorer");

    Если запуск нового процесса — это все, что Вам нужно, то дальше можете и не читать. А если Вам нужно дождаться завершения процесса и выполнить после этого некоторые действия, то нужно вызвать метод WaitForExit() нового процесса:

    p.WaitForExit(); // Ожидаем завершения процесса
    Console.WriteLine("Process exited");

    Вышеупоммянутый код полностью останавливает приложение на время работы вызываемой программы. Если это не нужно, то можно привязать к процессу обработчик его завершения, и пока он работает заниматься своими делами:

    Process p = new Process();
    ProcessStartInfo info = new ProcessStartInfo("explorer");
    
    p.StartInfo = info;
    // привязываем обработчик завершения процесса
    p.Exited += new EventHandler(processExited);
    p.EnableRaisingEvents = true;
    p.Start();
    Console.WriteLine("Process started");

Для ответа в этой теме необходимо авторизоваться.