C#process.start,我怎么知道这个过程是否结束了?
在C#中,我可以开始一个进程
的Process.Start(的Program.exe);
如何判断程序是否仍在运行,或者程序是否已关闭?
MSDN System.Diagnostics.Process
如果您现在想知道,可以查看HasExited
属性。
var isRunning = !process.HasExited;
如果这是一个快速的过程,只需等待它。
process.WaitForExit();
如果您在后台启动,请在将EnableRaisingEvents设置为true后订阅Exited事件。
process.EnableRaisingEvents = true; process.Exited += (sender, e) => { /* do whatever */ };
Process p = new Process(); p.Exited += new EventHandler(p_Exited); p.StartInfo.FileName = @"path to file"; p.EnableRaisingEvents = true; p.Start(); void p_Exited(object sender, EventArgs e) { MessageBox.Show("Process exited"); }
如果使用静态Process.Start()
调用(或使用new
创建实例),请确保保存Process
对象,然后检查HasExited
属性,或者根据需要订阅Exited
事件。
为Exited事件分配事件处理程序。
该MSDN链接中有示例代码 – 我在此不再重复。
查看Process类的MSDN文档 。
特别是有一个你可以听的事件( 退出 )。