2011-01-26 56 views
5

我有一個父窗口窗體應用程序和一個孩子commandline.exe。對匿名管道使用修改後的MSDN示例(h ttp://msdn.microsoft.com/en-us/library/bb546102.aspx),我可以將父對象的序列化對象發送給子對象。孩子可以對對象進行反序列化並讀取值。.net c#匿名管道 - 被誤解?

也許我誤解了匿名管道的機制,但是我期待管道保持打開狀態,直到我關閉它爲止,以便在我喜歡時能夠發送另一個對象,但是在發送/接收對象之後管道不再連接(由IsConnected屬性確定)。

目前,一旦一個對象從父母發送到孩子,管道關閉(而不是「我」)。我在本地維護對原始pipeHandle的引用,但似乎無法重新打開管道。我應該能夠還是不應該首先關閉?我不明白我怎麼能打開另一個新的管道,因爲我無法將父句柄從客戶端傳遞給客戶端(初始管道句柄首先通過參數傳遞)

如何從父母給孩子?

我知道我可以使用命名管道,但MSDN建議在同一本地計算機上使用IPC的匿名管道。

非常感謝

阿尼

+1

請張貼您的代碼。 – 2011-01-26 17:28:43

回答

7

如果你正在做的一樣MSDN樣品你關閉的StreamWriter(與using聲明)中,並closing a StreamWriter關閉底層流。只要流保持打開狀態,管道就會保持打開狀態,所以如果您不想關閉它,請不要關閉流,也不要關閉流,也不要關閉流。