2011-12-20 21 views
0

首先我写入NamedPipeClientStream,然后从中读取。这基本上工作。但是我没有得到StreamReader和StreamWriter的资源处理权。对同一管道上的流进行资源处理

方法1

using (StreamWriter sw = new StreamWriter(pipeStream)) 
{ 
    // ... 
    using (StreamReader sr = new StreamReader(pipeStream)) 
    { 
    // ... 
    } 
} 

sw处置失败,因为流已经关闭。

方法2

using (StreamWriter sw = new StreamWriter(pipeStream)) 
{ 
    // ... 
} 
using (StreamReader sr = new StreamReader(pipeStream)) 
{ 
    // ... 
} 

现在在另一个进程斗争管服务器,因为管道连接被提前关闭。

方法3

another question regarding file streams有人建议使用一个单独的数据流的读者和作家。但是这不能应用,因为它们都应该使用相同的管道实例。

那么在这种情况下,流如何正确管理?

+0

是的,StreamReader/Writer.Dispose()方法将关闭管道流。这很少是你想要的,不要使用* using *语句。这两个班级都没有其他需要处理的资源。 –

回答

0

为什么不使用FileStream可以同时处理读取和写入单个数据流?