在.NET应用程序中运行Process.Start时,我们要等到进程启动或失败,而不是继续调用程序/方法 - 这是正确的吗?
答案 0 :(得分:2)
请阅读http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx。一旦启动进程,Process.Start将返回。如果你想等到进程退出,那么你需要调用WaitForExit。
如果要重定向StandardOutput和StandardError并调用WaitForExit,请注意存在潜在的死锁问题。如果您没有读取StandardOutput和StandardError的流,则缓冲区可以填充,进程将阻塞。因此WaitForExit将永远不会返回。通常的解决方案是在线程池线程中对StandardOutput和StandardError调用ReadToEnd,并在主线程上调用WaitForExit。
答案 1 :(得分:0)
一旦Process.Start启动的应用程序开始(或无法启动),控制权就会返回到您的应用程序。