我正试图找出如何使用Microsoft推荐的基于任务的异步/等待方法等待NetworkStream
上的数据。
到目前为止,我只是循环,直到数据变得可用,这可能是不好的事情:
using (NetworkStream stream = client.GetStream())
{
while (true)
{
if (stream.CanRead && stream.DataAvailable)
{
using(BinaryReader reader = new BinaryReader(stream))
{
byte data = reader.ReadByte();
}
}
}
}
答案 0 :(得分:2)
此时所有建议都是NetworkStream.ReadAsync:
result = new byte[1024];
var bytesRead = await SourceStream.ReadAsync(result, 0, result.Lengh);