public override int Read(byte[] buffer, int offset, int count)
{
if (_disposed) throw new ObjectDisposedException("_stream");
return Task.Run(async () =>
{
using (var reader = new DataReader(_stream))
{
await reader.LoadAsync((uint)count);
var length = Math.Min(count, (int)reader.UnconsumedBufferLength);
var temp = new byte[length];
reader.ReadBytes(temp);
Array.Copy(temp, 0, buffer, offset, length);
reader.DetachStream();
return length;
}
}).Result;
}