private string ReadToEnd(ProcessStreamReader processStream, CancellationToken cancellationToken) { var readStreamTask = Task.Run( () => { var streamMessage = string.Empty; while (processStream.Peek() >= 0) { streamMessage += processStream.ReadLine(); } return(streamMessage); }); var successful = readStreamTask.Wait((int)_maxTime.TotalMilliseconds, cancellationToken); return(successful ? readStreamTask.Result : "Stuck when reading from stream!"); }
private bool ReadToEnd(ProcessStreamReader processStream, TimeSpan maxTime, CancellationToken cancellationToken, out string message) { var readStreamTask = Task.Run( () => { var streamMessage = string.Empty; while (processStream.Peek() >= 0) { streamMessage += processStream.ReadLine(); } return(streamMessage); }, cancellationToken); // We also have a max time in the test runner so add a bit of extra here // just in case so we don't fail it to early. var successful = readStreamTask.Wait((int)maxTime.Add(TimeSpan.FromSeconds(30)).TotalMilliseconds, cancellationToken); message = successful ? readStreamTask.Result : "Stuck when reading from stream!"; return(successful); }