Process.Start()是同步的吗?

时间:2013-02-19 08:18:22

标签: c# asynchronous process

我有这样的代码:

ProcessStartInfo psi= new ProcessStartInfo(...);
Process process = Process.Start(psi);
Application.Current.Shutdown();

即便如此,process在生产计算机上很少有应用程序的进程信息(我有日志),根本不会打开进程。

因为我现在Process.Start()是同步的,如果它返回一个值,那么必须有一个正在运行的进程。

我的另一个信息是真正的过程也是shell过程。

有没有人知道这是什么问题?

1 个答案:

答案 0 :(得分:2)

进程是IO工件,因此在启动它和实际打开之间总有一些延迟。

这种延迟自然取决于运行代码的具体机器。

所以,就像一个解决方案,你可以

  • 或睡眠主线程,直到p进程打开,持续一段时间

  • 或关闭主线程,只有从(比方说)某个定时器中,您才能在已运行的OS进程列表中找到所需的p进程。

我认为,第二种是更好的解决方案。