2011-12-28 6 views
1

私は2つのプロセスWriterProcとReaderProcを持っています。プロセスをやりとりするときにC#でプロセス間通信を行うにはどうすればよいですか?

WriterProcは書き込みのみ、ReaderProcは読み取りのみを行います。私は通信のために名前付きパイプを使うことができますが、ライターがそれを書いているときにReaderProcが生きていないか、あるいはその逆が問題になることがあります。

両方を同時にアクティブにできるため、書き込みと読み取りの同期が必要な場合があります。

C#4にはどのような方法がありますか?

+0

どのような種類のデータが読み書きされますか? – ken2k

+1

あなたは「永続的なIPC」を探していますか?ファイルIMO *またはリーダーとライター間のプロキシを使用してください。 –

答えて

2

Message Queuingサービスは、あなたのような状況で使用するように設計されています。彼らは保証されたメッセージ配信を提供します。したがって、読者が実行されていないときに書面が忙しい場合、読者は起動後にメッセージがいっぱいになるでしょう。

+0

MappedFilesのような低レベルのものを使用できますか? – Rohit

+0

@Rohitより低いレベルのものであれば、永続的なメッセージの機能を再実装することになります。これは非常に難しいです(読者のクラッシュ、ライターのクラッシュ、コンピュータの再起動、名前はほんの数です)。確かに、メモリにマップされたファイルを介して通信することも、通常のファイルを介して通信することもできます。しかし、保証された配信を実現するために考慮する必要がある同期の問題の数は圧倒的です。 – dasblinkenlight

0

どのようにWCFを作成するのですか?

ライターWCFは、読み取る直前に読み取りを中止し、書き込みが完了したら信号を送信するようにReader WCFに通知します。

関連する問題