public virtual ProcessResult Execute(ProcessInfo processInfo) { using (var process = Start(processInfo)) { using ( ProcessReader standardOutput = new ProcessReader(process.StandardOutput), standardError = new ProcessReader(process.StandardError)) { WriteToStandardInput(process, processInfo); var hasExited = process.WaitForExit(processInfo.TimeOut); if (hasExited) { standardOutput.WaitForExit(); standardError.WaitForExit(); } else { Kill(process, processInfo, standardOutput, standardError); } return(new ProcessResult(standardOutput.Output, standardError.Output, process.ExitCode, !hasExited)); } } }
public virtual ProcessResult Execute(ProcessInfo processInfo) { using (var process = Start(processInfo)) { using ( ProcessReader standardOutput = new ProcessReader(process.StandardOutput), standardError = new ProcessReader(process.StandardError)) { WriteToStandardInput(process, processInfo); var hasExited = process.WaitForExit(processInfo.TimeOut); if (hasExited) { standardOutput.WaitForExit(); standardError.WaitForExit(); } else { Kill(process, processInfo, standardOutput, standardError); } return new ProcessResult(standardOutput.Output, standardError.Output, process.ExitCode, ! hasExited); } } }