2011-12-20 57 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可以同時處理讀取和寫入單個數據流?