我正在使用.net 3.5命名管道,我的服务器端是:
serverPipeStream = new NamedPipeServerStream("myPipe", PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous);
当我用BinaryWriter写一些数据时,write()调用本身不会返回,直到客户端在其NamedPipeClientStream上调用了read()。
BinaryWriter是:
writer = new BinaryWriter(serverPipeStream);
我知道NamedPipeServerStream提供了一个BeginRead / BeginWrite但是从我收集的内容来看,命名管道应该允许streamwriters在它们之上执行(如许多微软给出的例子所示)。
那么如何让我的write()到命名管道不等待?
提前感谢您的帮助。
答案 0 :(得分:2)
问题是BinaryWriter没有BeginWrite
函数,因此,如建议here,您可以写入MemoryStream,然后使用其缓冲区传递给{{} 1}}管道的功能。
希望有所帮助。