public RunnerResult Run(string file, Action<string[]> action)
{
using (var stream = new MemoryStream())
{
var writer = new StreamWriter(stream);
var defOut = Console.Out;
Console.SetOut(writer);
Exception ex;
string[] lines;
var sw = Stopwatch.StartNew();
try
{
ex = RunAction(action, timeout);
}
finally
{
lines = FinishStream(stream, writer);
Console.SetOut(defOut);
}
return new RunnerResult(file, sw.Elapsed, lines, ex);
}
}