我有一个IInputStream
我想从中读取数据,直到遇到某个字节,此时我将把它传递IInputStream
给其他对象以消耗流的其余部分。
这就是我想出的:
public async Task HandleInputStream(IInputStream instream)
{
using (var dataReader = new DataReader(instream))
{
byte b;
do
{
await dataReader.LoadAsync(1);
b = dataReader.ReadByte();
// Do something with the byte
} while (b != <some condition>);
dataReader.DetachStream();
}
}
似乎一次运行LoadData
一个字节会非常慢。我的困境是,如果我选择一个缓冲区大小(如 1024)并加载它,并且我的值显示为 10 个字节,那么此方法将具有下一个 1014 个字节的数据,并且必须将其传递给下一个方法进行处理.
有没有更好的方法来解决这个问题,或者这是一个可以接受的解决方案?