.net c#匿名管道 - 被误解?

Arn*_*nie 5 .net c# pipe

我有一个父Windows窗体应用程序和一个子命令行.使用修改后的MSDN示例进行匿名管道(h ttp://msdn.microsoft.com/en-us/library/bb546102.aspx)我可以从父级向子级发送序列化对象.孩子可以反序列化对象并读取值.

也许我误解了匿名管道的机制,但是我期待管道保持打开直到我关闭它,这样我就可以在我喜欢的时候发送另一个对象,但是在发送/接收对象之后管道是否定的连接时间更长(由IsConnected属性决定).

此时,一旦对象从父级发送到子级,管道就会关闭(而不是"我").我在本地维护对原始pipeHandle的引用,但似乎无法重新打开管道.我是否能够或者不应该首先关闭?我不知道如何打开另一个新管道,因为我无法将句柄从父级传递给客户端(初始管道处理在第一个实例中由args传递)

如何从父母向孩子发送另一个对象?

我意识到我可以使用命名管道,但MSDN建议在同一台本地机器上使用IPC的匿名管道.

非常感谢

阿尼

R. *_*des 7

如果您在MSDN示例中执行类似操作,则关闭StreamWriter(使用该using语句),关闭StreamWriter将关闭基础流.只要流保持打开,管道就会保持打开状态,因此如果您不想关闭它,请不要关闭流,也不要关闭流StreamWriter.