У меня проблемы с расшифровкой документации msdn.
Я хочу вызвать класс процесса.Если процесс, который вызывает класс процесса, завершается, я хочу, чтобы мой код завершился, но я хочу, чтобы "StandardOutput" и "StandardError" были записаны в файл журнала.
Если процесс, который вызывает класс процесса, зависает(и не завершается) Я хочу, чтобы мой код завершил работу по таймауту и закрыл процесс после определенного времени ожидания, но я все еще хочу, чтобы "StandardOutput" и "StandardError" были записаны в файл журнала.
ИтакУ меня есть это как мой код:
using (Process p = new Process())
{
p.StartInfo.FileName = exePathArg;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.Arguments = argumentsArg;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
try
{
p.Start();
p.WaitForExit(timeToWaitForProcessToExit);
StreamReader standardOutput = p.StandardOutput;
StreamReader standardError = p.StandardError;
retDirects.Add("StandardOutput", standardOutput.ReadToEnd());
retDirects.Add("StandardError", standardError.ReadToEnd());
}
catch (Exception ex)
{
//nothing to do with this yet
}
finally
{
try
{
p.Kill();
}
catch { }
}
}
Это правильный способ делать вещи?