【发布时间】:2012-11-29 18:27:54
【问题描述】:
我有一个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 个字节的数据,并且必须将其传递给下一个方法进行处理.
有没有更好的方法来解决这个问题,或者这是一个可以接受的解决方案?
【问题讨论】:
标签: c# windows-runtime