Как подсказал Мэтт Гамильтон, быстрый подход, при котором вы имеете ограниченный контроль над процессом, заключается в использовании статического метода Start в классе System.Diagnostics.Process ...
using System.Diagnostics;
...
Process.Start("process.exe");
Альтернативой является использование экземпляра класса Process. Это дает гораздо больший контроль над процессом, включая планирование, тип окна, в котором он будет выполняться, и, что наиболее полезно для меня, возможность ожидания завершения процесса.
using System.Diagnostics;
...
Process process = new Process();
// Configure the process using the StartInfo properties.
process.StartInfo.FileName = "process.exe";
process.StartInfo.Arguments = "-n";
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.Start();
process.WaitForExit();// Waits here for the process to exit.
Этот метод обеспечивает гораздо больший контроль, чем я упоминал.