我有一个控制台应用程序,我正在从我的C#程序运行一个进程。
我已经做了一个事件处理程序,当这个进程终止时被调用。
如何在事件处理程序中打印此进程的标准输出。 基本上,我如何访问事件处理程序中的进程的属性?
我的代码如下所示。在事件处理程序中打印标准输出处理
public void myFunc()
{
.
.
Process p = new Process();
p.StartInfo.FileName = "myProgram.exe";
p.StartInfo.RedirectStandardOutput = true;
p.EnableRaisingEvents = true;
p.Exited += new EventHandler(myProcess_Exited);
p.Start();
.
.
}
private void myProcess_Exited(object sender, System.EventArgs e)
{
Console.WriteLine("log: {0}", <what should be here?>);
}
我不想让过程对象p作为类的字段。
另外,System.EventArgs e
字段有什么用?这怎么可以使用?
*我不想使这一过程物P作为类的字段* - 为什么不呢? – DaveShaw
@DaveShaw:没有理由这样做。事件处理程序已经将回发过程对象作为'sender'参数。没有理由将这些信息保留在多余的地方。 –
@DaveShaw,我不想这样做,因为在我的实现中,我有一个进程数组。如果我成为这个班的一个领域,事情会变得复杂一些。 – Venom