2013-07-20 17 views
0

我正在使用SerialStream項目。這是SerialPort.BaseStream。我希望有時用MemoryStream代替該流,以用於測試目的和通用數據模擬。我如何模擬一個SerialStream與MemoryStream提供間歇性數據在.Net4

SerialStream是一個動態流。它將保持打開狀態,並且連接的BinaryReader將愉快地阻止ReadByte,直到下一個字節進入串行端口。這是一件好事。

我的問題是,它是一個MemoryStream它是一個固定的實體。您必須預先填寫數據,重置BaseStream’s位置,然後開始閱讀。但是現在你不能添加下一輪數據。

是否有MemoryStream的現有版本或衍生工具可以讓我模擬動態流?我的目標是通過解析例程一個流,它不知道串行端口,網絡端口或內存管道的基本差異。

我不斷回到基本問題,即如何處理使用內存流的進程之間的持續消耗和數據提供。

回答

1

我不得不做一些非常相似的事情,然後想出了我所說的ProducerConsumerStream。基本上,它是一個帶有Stream接口的循環隊列。有了它,我可以將二進制閱讀器連接到一端,然後在另一端間歇性地添加數據。工作很好。

請參閱Building a new type of stream

+0

謝謝你的文章。作爲一種解決方法,我將ConcurrentQueue嫁接到解析器線程對象作爲備用輸入源。我將很快重新審視這個問題,因爲這是我一直想要做的事情。 –

相關問題