正在运行的c#应用程序是否可以启动/调用一些新的任意进程,但只能在当前正在运行的应用程序终止后执行此操作?
我想可以通过Process.Start()
从cmd.exe
调用新流程并执行类似sleep 3 & c:\mynewapplication.exe
的操作 - 这会给“来电者”提供帮助。约三秒钟终止自己。
然而,这有点hacky,并且想知道是否有更简洁的方式?
答案 0 :(得分:2)
根据应用程序的类型,您可以直接收听程序的结尾。您有一个选择是Application.ApplicationExit
事件。
另一种可能性是启动另一个进程,等待直到第一个进程终止。例如,您可以轮询Process.GetProcesses
。即使第一个进程崩溃,这也会引发事件。您还可以注册Process.Exited
事件。
答案 1 :(得分:0)
它与C#几乎没有关系。这是关于Windows操作系统的问题,特别是在WinAPI中。
一般来说,唯一的事情是'运行代码的是线程。当你的进程终止时,它的所有线程都会死掉。
您最好的方法可能是在开始新流程之前启动一个等待的流程,如您所建议的那样,但是,例如,您可能会挂钩某些事件时调用的函数并在那里启动新流程。 / p>