C# 4.0 如何在.Net4中模拟带有间歇数据的MemoryStream的串行流
我正在从事一个将使用C# 4.0 如何在.Net4中模拟带有间歇数据的MemoryStream的串行流,c#-4.0,stream,C# 4.0,Stream,我正在从事一个将使用SerialStream的项目。这是SerialPort.BaseStream。出于测试和一般数据模拟的目的,我有时想用MemoryStream替换该流 SerialStream是一个动态流。它将保持打开状态,连接的BinaryReader将愉快地阻塞ReadByte,直到下一个字节进入串行端口。这是一件好事 我的问题是MemoryStream它是一个固定的实体。您必须用数据预先填充它,重置基流的位置,然后开始读取。但现在您无法添加下一轮数据 是否有一个现有版本的Memory
SerialStream
的项目。这是SerialPort.BaseStream
。出于测试和一般数据模拟的目的,我有时想用MemoryStream
替换该流
SerialStream
是一个动态流。它将保持打开状态,连接的BinaryReader
将愉快地阻塞ReadByte
,直到下一个字节进入串行端口。这是一件好事
我的问题是MemoryStream
它是一个固定的实体。您必须用数据预先填充它,重置基流的
位置,然后开始读取。但现在您无法添加下一轮数据
是否有一个现有版本的MemoryStream
或一个可以让我模拟动态流的派生版本?我的目标是向解析例程传递一个流,它不知道串行端口、网络端口或内存管道的根本区别
我不断地回到基本问题上来,即如何使用内存流处理进程之间的连续数据消耗和供应。不久前,我不得不做一些非常类似的事情,并提出了我称之为
ProducerConsumerStream
。基本上,它是一个带有流
接口的循环队列。有了它,我可以将二进制读取器连接到一端,然后在另一端间歇性地添加数据。工作得很好
参见谢谢你的文章。作为一种解决方法,我将ConcurrentQueue作为备用输入源移植到解析器线程对象。我将很快重新讨论这个问题,因为这是我一直在尝试做的事情。