using System.Threading.Tasks;
public static void Main()
TextReader stdout = new StringReader("Some sample text!");
const int BUFFER_SIZE = 1;
char[] buffer = new char[BUFFER_SIZE];
Task<int> readTask = stdout.ReadAsync(buffer, 0, BUFFER_SIZE);
Action<Task<int>> appendAction = null;
string bufferString = new string(buffer);
string newText = bufferString.Substring(0, read.Result);
if (read.Result == BUFFER_SIZE)
readTask = stdout.ReadAsync(buffer, 0, BUFFER_SIZE);
readTask.ContinueWith(appendAction);
readTask.ContinueWith(appendAction);