繁体   English   中英

C#process.start,我怎么知道这个过程是否结束了?

[英]C# process.start, how do I know if the process ended?

在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文档

特别是有一个你可以听的事件( 退出 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM