我正在处理一个将使用SerialStream
的项目。这是SerialPort.BaseStream
。出于测试和一般数据模拟的目的,我有时想用MemoryStream
替换该流。
SerialStream
是一个动态流。它将保持打开,连接的BinaryReader
将愉快地阻塞ReadByte
,直到下一个字节进入串行端口。这是一件好事。
我的问题是MemoryStream
是一个固定的实体。您必须预先填充数据,重置BaseStream’s
位置,然后开始读取。但现在您无法添加下一轮数据。
有没有MemoryStream
的现有版本或衍生版本可以让我模拟动态流?我的目标是向解析例程传递一个流,它不知道串行端口、网络端口或内存管道的根本区别。
我不断回到基本问题,即如何处理使用内存流的进程之间的数据连续消耗和供应。
不久前,我不得不做一些非常类似的事情,并提出了我所称的ProducerConsumerStream
。基本上,它是一个带有Stream
接口的循环队列。有了它,我可以将二进制读取器连接到一端,然后在另一端间歇性地添加数据。工作得很好。
请参阅构建新型流