2016-03-20 4 views
0

を扱うには私の問題の要点である高め、ここで別のプロセス内のイベント

  1. プロセスAはおそらく別のマシン上のイベント
  2. プロセスBを発生させ、何か

をイベントをキャッチしませんこれは.netフレームワークでは可能ですか?私が見てきたすべての例では、イベントプロデューサとコンシューマが同じマシン上の同じプロセス/アプリケーションにあります。時々彼らは同じ糸の中にあります、時には彼らは別の糸にありますが、彼らは常に同じマシン上の同じプロセスにあります。

イベントハンドラでソケットを使用して、あるプロセスから別のプロセスにイベントを送信し、受信側でイベントを発生させることで、望ましい効果を達成できます。私はイベントIDを作成し、引数を直列化/逆シリアル化し、ソケットコードの全負荷で再生する必要があるので、これは非常に丸い方法のようです。これは90年代のCで行ったのと同じです。今の

質問は、私は.NET Frameworkのイベントメカニズムを使用して、同じマシン上の別のプロセスからイベントを送信するにはどうすればよい

のですか?

答えて

0

これは、Interprocess Communication(IPC)とよく似ています。これにはいくつかの仕組みがあり、Windows以外のシステムではさまざまなサポートがあります。私の頭の上から離れたWCF、リモーティングとメモリマップされたIPCがあります。実際には、zeromqのような軽量パブのサブメカニズムを使用することが最も適切な解決策であることがわかりました。

+0

あなたが言うことは、プロセス間でイベントを処理する組み込みのメカニズムがないことです。 WCFや何らかの形のIPCを使用しなければなりません。それは私のために十分です。 – cup

+0

Windows(ETW)のイベントトレースもありますが、配信保証などはわかりません。おそらくそれも可能ですが、コアではより高いレベルのAPIを持つIPCです。私の答えが役に立つと分かったら、それを受け入れるのですか? – Martin

関連する問題