I am creating a GUI application using Visual C# 2005 (net framework 2). I use the following code to start a process:
Process process = new Process();
process.StartInfo = new ProcessStartInfo("app.exe");
process.StartInfo.WorkingDirectory = "";
process.StartInfo.Arguments = "some arguments";
process.Start();
process.WaitForExit();
I want my application to wait until this process is finished, so I used WaitForExit. But the GUI Windows freezes while app.exe is running. I want it to respond (e.g. press a cancel button), but I don't want the code to continue, because there is another process to start after than. Thanks in advance!
You can capture the Exited event of the Process class:
void someMethod()
{
//...possibly more code here
Process process = new Process();
process.StartInfo = new ProcessStartInfo("app.exe");
process.StartInfo.WorkingDirectory = "";
process.StartInfo.Arguments = "some arguments";
process.Exited += new EventHandler(ProcessExited);
process.Start();
}
void ProcessExited(object sender, System.EventArgs e)
{
//Handle process exit here
}