public async Task TestConcurrent() { var output = new byte[10]; Task <int> readTask; using (var s = new UnbufferedMemoryStream.UnbufferedMemoryStream()) { readTask = s.ReadAsync(output, 0, 10); s.WriteByte(10); } var read = await readTask; Assert.AreEqual(1, read); Assert.AreEqual(10, output[0]); }