2016-04-27 7 views
0

Iは、他のC#アプリケーションから起動されるアプリケーション(C#のデスクトップアプリケーション)を有します。親の アプリから子アプリに値を渡すには、テキストファイルを使用しています。親アプリを起動する前に、 の値をテキストファイルに書き込み、子アプリがそれを読み取ります。(.NET C#EXE)

子アプリプロセス値と結果を計算します。

問題:ユーザーが子アプリケーションを閉じると、親アプリケーションに通知する必要があり、新しい値は親アプリケーションで利用可能な である必要があります。

今、私はすべての私たちは、簡単な方法でこれを達成できるかわかりませんか?アーキテクチャは変更できません。

ありがとうございます。 よろしくお願いいたします。

+0

あなたの値は数値か文字に基づいていますか? – Damian

+0

これはあまりにも広範かつ肯定的な答えになるでしょう。あなたはプロセス間で通信することができる何十もの方法があります...私は[this](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v = vs.85) .aspx)を参照してください。 .NETと単純なローカル(非ネットワーク)通信では、[Anonymous Pipes](https://msdn.microsoft.com/en-us/library/bb546102.aspx)に行きますが、これはちょっとした意見です – Jcl

+0

WCFサービスを利用できると聞いたことがありますか? 私はwcfについてよく分かりませんが、私がWCFサービスについて知っているのは、アプリケーションがMyMethodというメソッドを呼び出すwcfサービスへの参照を持つということです。今度はMyMethod()がいくつかの機能を実行し、機能が終了するとwcfサービスは呼び出し側のアプリケーションにその結果をコールバックすることができます。 私のシナリオでは、親アプリが起動する別のプロセスがあります。この場合、wcfサービスはどのように使用できますか? – App

答えて

0

私たちは、使用するWCFサービスかもしれことを聞いたことがありますか?

私は、WCF多くを知っているが、私は、WCFサービスについて知っていることは、アプリケーションがメソッドを呼び出しますWCFサービスへの参照を持つことになりませんがMyMethodは言います。今度はMyMethod()がいくつかの機能を実行し、機能が終了するとwcfサービスは呼び出し側のアプリケーションにその結果をコールバックすることができます。

しかし、私のシナリオでは、親アプリが起動する別のプロセスがあります。この場合、wcfサービスはどのように使用できますか?

0

送信している値の複雑さや大きさはどれくらいですか?

希望する場合は、MSMQまたはRabbitMQを使用できます(リンクはチュートリアルを指しています)。 IMO、これは大きなメッセージにはまともではなく、あなたのアプリがクラッシュしたときにそこにとどまります。メッセージはまだ次回に待っています。

または整数ベースの値、メッセージの種類としてWM_APP +(カスタムインデックス)を使用してのSendMessage API上の古い学校のアプローチのために。

0

これを行うにはいくつかの方法があります。親アプリケーションがテキストファイルの変更をポーリングする可能性があります。親プロセスと子プロセスの間でソケットを使用できます(ローカルホストにバインドされたネットワークサービスコール)。メッセージキューに書き込むことができます。

+0

ああ、ソケット!それは私の反応をするときに私の心を失った。良い追加。 – Damian