/*
The quick approach where you have limited control over the process, is to use the
static Start method on the System.Diagnostics.Process class...
*/
using System.Diagnostics;
...
Process.Start("process.exe");
/*---------------------------------------------------------
The alternative is to use an instance of the Process class. This allows much more
control over the process including scheduling, the type of the window it will run in and,
most usefully for me, the ability to wait for the process to finish.
*/
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.
This method allows far more control than I've mentioned.