У меня есть консольное приложение, которое я запускаю как процесс из моей программы на 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
? Как это можно использовать?
* Я не хочу, чтобы объект процесса р как поле класса * - Почему нет.? – DaveShaw
@DaveShaw: Нет причин для этого. Обработчик событий уже отправит объект процесса в качестве параметра 'sender'. Нет причин держать эту информацию в избыточном месте. –
@DaveShaw, я не хотел этого делать, потому что в моей реализации у меня есть массив процессов. И если я сделаю это поле этого класса, все станет немного сложнее. – Venom