C# 找出已完成的System.Diagnostics.Process
我正在使用System.Diagnostics.Process在我的C#应用程序中生成新进程,如下所示:C# 找出已完成的System.Diagnostics.Process,c#,.net,process,C#,.net,Process,我正在使用System.Diagnostics.Process在我的C#应用程序中生成新进程,如下所示: void SpawnNewProcess { string fileName = GetFileName(); System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = fileName; proc.Start(); pro
void SpawnNewProcess
{
string fileName = GetFileName();
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = fileName;
proc.Start();
proc.Exited += new EventHandler(ProcessExited);
proc.EnableRaisingEvents = true;
}
private void ProcessExited(Object source, EventArgs e)
{
}
用户可以自由生成任意多个进程—现在的问题是:我在ProcessExited函数中,如何找出哪些进程已退出
中的示例演示了如何为此使用成员变量,但这不适用于更多进程
知道我是如何找出哪个进程刚刚退出的吗?源参数可能就是退出的进程。您必须将其强制转换。您将在事件处理程序中获得
进程
对象作为源
source.Id
将具有进程的PID。如果需要更多信息,可以将PID和关联属性的查找表作为成员变量
请注意,您必须先将源代码
转换为进程
,然后才能访问其成员。例如:
private void ProcessExited(Object source, EventArgs e)
{
var proc = (Process)source;
Console.WriteLine(proc.Id.ToString());
}