2

我有这样的代码:

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

即便如此,process在极少数情况下,在生产计算机上拥有应用程序的进程信息(我有日志),进程根本没有打开。

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

我掌握的另一个信息是,真正的进程也是shell进程。

有谁知道问题出在哪里?

4

1 回答 1

2

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

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

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

  • 或休眠主线程直到p进程打开一段时间

  • 或关闭主线程,只有当您从(例如)某个计时器可以p在已运行的操作系统进程列表中找到所需的进程时。

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

于 2013-02-19T08:27:47.313 回答