 <p>I sure hope you have control of the code for the external application or you are in for a lot of headaches. The MOST important thing to do is make sure there is no way for that application to hang and not terminate.</p> <p>You can then use the WaitForExit(), ExitCode, StandarError, StandardOut to "catch all possible errors and find out when it's completed"</p>