1

Windows サービスを構築しました。それを Jobs と呼びましょう。そして、私は WinForm アプリを持っています。これを Viewer と呼びましょう。

Jobs が何かの実行を開始したときに Viewer が Jobs からイベントを受け取るようにして、Viewer がジョブ A が開始した、何かを実行した、停止したなどをユーザーに表示できるようにします。

ビューアーが受信するように登録できるイベントをジョブにスローさせる方法はありますか? 私が考えることができる最善の解決策は MSMQ を使用することですが、Viewer を起動して Jobs ウィンドウ サービスに登録し、そこから通知/イベントを受信するように要求する、より直接的なアプローチが必要です。

MSMQ を使用せずに Windows サービスで何かをプッシュする方法や、プッシュを受信するために他のプログラムを登録する方法がわかりません。Viewer が 5 秒間スリープしてから変更をチェックする、変なファイルやデータベース システムを絶対に使いたくありません。ビューアーがイベントを待機する合理化されたものが必要ですが、MSMQ を使用する必要はありません。

4

1 に答える 1

1

これには、netTcpBinding や dualHttpBinding などの WCF 二重バインディングの 1 つを使用できます。あなたが望むことを正確に行うように見える完全な例がここにあります。

欠点は、デュプレックスを理解するのが複雑であり、信頼性が低い可能性があることです。可能な場合は、常に一方向通信 (キューイングまたはその他のメカニズムを介して) を使用してソリューションを実装します。1 つの方法は常に二重よりも簡単で信頼性が高くなります。

于 2012-11-21T08:00:37.497 に答える