这是我的场景:
producer.WriteStream(stream);
consumer.ReadStream(stream);
Run Code Online (Sandbox Code Playgroud)
我想要一些东西,允许将 生成的字节producer逐步传输到consumer.
我可以将所有内容写入 a MemoryStream,然后倒带并在 a 上读取它consumer,但这会导致巨大的内存消耗。
我怎样才能实现这个目标?
使用管道作为数据的底层传输,您可以拥有允许此类通信机制的“写入流”(服务器)和“读取流”(客户端)。
使用匿名管道或命名管道(如果需要进程间通信)非常简单。要创建管道流:
AnonymousPipeServerStream pipeServer = new AnonymousPipeServerStream();
AnonymousPipeClientStream pipeClient =
new AnonymousPipeClientStream(pipeServer.GetClientHandleAsString());
Run Code Online (Sandbox Code Playgroud)
现在您可以使用它们来写入和读取:
producer.WriteStream(pipeServer);
// somewhere else...
consumer.ReadStream(pipeClient);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4182 次 |
| 最近记录: |