[EDIT]
There is no such thing as association between processes. Processes can be indirectly associated using the job objects, please see Solution 2. At the same time, you can take care about your child processes by yourself. [END EDIT]
First of all, note that
Process.Start
returns you the instance of the external process started. You can use this instance to kill the process:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.kill.aspx[
^].
To do the opposite, to trigger something when the external process is exited, you can use
Process.WaitForExit
methods:
http://msdn.microsoft.com/en-us/library/fb4aw7b8.aspx[
^],
http://msdn.microsoft.com/en-us/library/ty0d8k56.aspx[
^].
As this call is
blocking, in most cases, a separate thread is required to wait.
—SA