0
まず、NamedPipeClientStreamに書き込んだ後、そこから読み込みます。これは基本的に動作します。しかし、私はStreamReaderとStreamWriterのリソースハンドリングを正しく取得できません。同じパイプ上で動作するストリームのためのRessource処理
アプローチ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))
{
// ...
}
別のプロセス闘争における今パイプサーバ、パイプ接続が早まって閉鎖されたためです。 another question regarding file streamsで
アプローチ3
それは、リーダライタのために別のストリームを使用することが示唆されました。しかし、これは適用できません。両方が同じパイプインスタンスを使用するためです。
このような状況で、ストリームはどのように正しく管理されていますか?
はい、StreamReader/Writer.Dispose()メソッドはパイプストリームを閉じます。まれにあなたが望むものですが、* using *ステートメントを使用しないでください。どちらのクラスも廃棄を必要とする他のリソースはありません。 –