there is an overload of WaitForExit() where you put the number of milliseconds to wait as maximum. But the process exit takes precedence.
Process.WaitForExit(10000)