0

現在、StreamWriterStreamReaderがあり、(テキスト)データを保持する1つのファイル、少なくとも2つのスレッドがあります。1つのスレッドがリスナーであり、データを読み取ります。もう1つのスレッドは、ストリームにデータを書き込みます。

ファイルをメモリバッファとして使用しないようにできますか?

両端から2本のストリームをつなぐことができるのではないかと思いました。しかし、どのようにわからない。ファイルに書き込むライターを作成します。次に、このファイルから読み取り、彼の作業を行うリーダーを作成するスレッドを開始します。それは動作しますが、ファイルを避けたいと思います。


// writer
StreamWriter writer = new StreamWriter(new FileStream("text.txt", FileMode.Create, FileAccess.Write, FileShare.Read));
writer.AutoFlush = true;
// reader
StreamReader reader = new StreamReader(new FileStream("text.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
4

1 に答える 1

1

これを行うと私が呼んProducerConsumerStreamだものを公開しました。これは、1 つのリーダーと 1 つのライターを許可するメモリ内ストリームです。これは固定サイズの循環バッファーであり、消費者は生産者が書き込むのと同じ速さで読み取ることができます。新しいタイプのストリームの構築を参照してください。

于 2013-03-06T14:21:53.073 に答える