【发布时间】:2010-07-13 00:53:54
【问题描述】:
我们有一个启动器应用程序,它会进行一些设置(启动服务器)、启动子进程、等待(通过工作线程)子进程退出,然后进行一些清理(停止服务器)。这已经到位并且工作正常。
但是,我们的某些应用可以启动其他应用。例如,启动器可能会启动应用程序 A,然后我可能会单击应用程序 A 中启动应用程序 B 的按钮。然后我关闭应用程序 A,启动器的 Process.WaitForExit 调用返回,启动器停止服务器 - 不知道应用 B 仍在运行。我们仅将启动器用于开发测试,因此这不是危机,但当应用 B 尝试与服务器通信并崩溃时,会很不方便。
启动子进程然后等待它(及其任何子进程)退出的最佳方法是什么?
这些应用程序(启动器和正在启动的应用程序)都在 .NET 中。如果我必须在每个应用程序中编写特殊代码(例如打开命名信号量)来完成这项工作,那很好;我只是不确定最好的方法。
如果有某种方法可以只等待 我的 应用程序完成 - 例如,如果我的应用程序启动记事本,我不想想等待记事本关闭;我只想等待需要服务器的应用程序。但这不是一个要求,只是一个细节。
【问题讨论】:
标签: .net windows process synchronization