过程退出的问题

时间:2010-12-16 03:46:06

标签: c# process exit exit-code

假设我有一个ID为1234的进程。此进程在我的应用程序运行之前运行。

我有这段代码:

        Process app = Process.GetProcessById(1234);
        MessageBox.Show(app.MainWindowTitle);
        app.Exited += this.methodShowsMessageBox;

现在,当我编译并运行应用程序时,它会获取进程并显示主窗口标题。然而,当我关闭进程1234时,app.Exited确实无法触发......为什么会这样?我怎么才能解雇呢?

2 个答案:

答案 0 :(得分:17)

请注意,在此事件发生前EnableRaisingEvents必须设置为true的{​​{3}}州才会触发。

答案 1 :(得分:3)

默认情况下,出于性能原因,Process类不会引发事件。如果您希望Process对象监视Exited并引发该事件,则需要将其EnableRaisingEvents属性设置为true。

  

与此相关的成本   看着退出的过程。如果   EnableRaisingEvents是真的,   当出现退出事件时   相关流程终止。该   您指定的过程   退出事件在那时运行。

     

有时,您的应用程序会启动   过程但不需要   通知其关闭。例如,   您的应用程序可以启动记事本   允许用户执行文本   编辑,但不再使用   记事本应用程序。您可以   选择不通知时   进程退出,因为它不是   与继续经营有关   你的申请。设置   EnableRaisingEvents为false保存   系统资源。