那时.NET Process.Start方法返回到调用方法?

时间:2009-08-14 15:15:37

标签: c# .net

在.NET应用程序中运行Process.Start时,我们要等到进程启动或失败,而不是继续调用程序/方法 - 这是正确的吗?

2 个答案:

答案 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启动的应用程序开始(或无法启动),控制权就会返回到您的应用程序。