这就是我正在做的事情。我有一个使用Process.Start()触发20个进程的循环。我希望他们一下子全部开火,但我想在他们关闭时抓住他们。无论如何在C#中做到这一点?
我知道你可以做process.WaitForExit(),但是所有这些都不会立即触发(这就是我想要的)。基本上,我想知道某些进程何时结束,以便我可以通过更新数据库记录来通知用户,这样他们就可以知道某些进程何时完成。而不是仅仅在他们关闭并将ProcessWindowStyle更改为正常时试图跟踪它们。
非常感谢。
答案 0 :(得分:6)
将Process.EnableRaisingEvents
设置为true,并订阅Exited
事件。
另一种方法是使用计时器检查HasExited
属性。
答案 1 :(得分:3)
您可以收听Exited event(您必须确保EnableRaisingEvents为真)。