2016-06-29 4 views
0

パイプを実装する.Netフレームワーク内のクラスはありますが、プロセス間通信の代わりにスレッド間通信のクラスはありますか? System.IO.Pipesは過剰なようです。クラス間のスレッド間通信のためのC#のパイプに似たクラス

特に私が探しているのは、1つのリーダースレッドと1つのライタースレッドを許可し、パイプの読み書き両側でIOをブロックすることができるものです。 System.IO.Pipes.PipeStreamは船外に見えます。

さらに、ライターはパイプに例外を「書き込む」ことができます。これにより、リーダーが起動し、追加の読み取りによって例外がパイプを通じて「プッシュ」されます。

私はSystem.IO.Streamインターフェイスを実装するものを探しています。私は厳密には必ずしも "メッセージ"ではなく、一連のデータを送信しようとしています。ストリームインターフェイスが必要な理由は、読者が他のソースのように入ってくるデータを扱うことができるようにするためです。

+0

パイプはストリームであり、スレッド通信にMemoryStreamを使用できます。例外はアプリケーションレベルのメッセージングです。 – jdweng

+0

同期されたコレクションの1つが要件に一致していますか? https://msdn.microsoft.com/en-us/library/system.collections.concurrent(v=vs.110).aspx名前空間を考える –

+0

スレッドが必要な場合は、イベントアグリゲーターhttps:// msdnはどうでしょうか.microsoft.com/ja-us/library/ff921122.aspx –

答えて

1

モニターを使用します。それは、読者のためのWait()メソッドとライターのメソッドを持っています。

通信は、引数として渡されたオブジェクトを介して行われます。

関連する問題