Example #1
0
        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));
                }
            }
        }
Example #2
0
        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);
                }
            }
        }