Process.Start()仅在当前应用程序被杀死后

时间:2015-05-11 11:04:55

标签: c# cmd

正在运行的c#应用程序是否可以启动/调用一些新的任意进程,但只能在当前正在运行的应用程序终止后执行此操作?

我想可以通过Process.Start()cmd.exe调用新流程并执行类似sleep 3 & c:\mynewapplication.exe的操作 - 这会给“来电者”提供帮助。约三秒钟终止自己。

然而,这有点hacky,并且想知道是否有更简洁的方式?

2 个答案:

答案 0 :(得分:2)

根据应用程序的类型,您可以直接收听程序的结尾。您有一个选择是Application.ApplicationExit事件。

另一种可能性是启动另一个进程,等待直到第一个进程终止。例如,您可以轮询Process.GetProcesses。即使第一个进程崩溃,这也会引发事件。您还可以注册Process.Exited事件。

答案 1 :(得分:0)

它与C#几乎没有关系。这是关于Windows操作系统的问题,特别是在WinAPI中。

一般来说,唯一的事情是'运行代码的是线程。当你的进程终止时,它的所有线程都会死掉。

您最好的方法可能是在开始新流程之前启动一个等待的流程,如您所建议的那样,但是,例如,您可能会挂钩某些事件时调用的函数并在那里启动新流程。 / p>