【发布时间】:2013-08-01 19:42:28
【问题描述】:
测试审查表明MemoryStream 总是返回“平滑”的结果。即,如果我们从MemoryStream 将 200 个字节读取到一个 400 字节的工作缓冲区中,它总是会在一次调用中准确返回 200 个字节。如果我们将 4000 字节读入 200 字节的工作缓冲区,它总是正好 20 次迭代,每次正好 200 字节。
问题是MemoryStream 可以(在现实世界中,极端情况下)代表慢流源(如网络或文件)。因此,读取可能不会如此确定地平滑。有可能每个Read 操作都可能返回一个不确定的读取的字节数(例如:8、1、105、20、5、80 ...)
那么有什么好方法可以将原版MemoryStream 变成(因为缺少更好的词)ChaosStream,其中读取的字节数是介于 1 和读取请求 count 之间的随机数? (请注意,0 表示流结束)。字节本身需要是底层字节,只需对它们进行一些随机/抖动读取以扩大测试范围。
【问题讨论】: