1

プロジェクト A と B の 2 つのプロジェクトがあります。ここで、プロジェクト A はシステム トレイ アプリケーションであり、プロジェクト B はメイン アプリケーションです。ユーザーがプロジェクト B から設定を変更すると、プロジェクト A はそれ自体を更新する必要があります。発生した変更をプロジェクト A に通知するにはどうすればよいですか?

グローバル イベントを使用しようとしましたが、起動時にアプリ B にアプリ A の新しいインスタンスを作成する必要があります。

4

2 に答える 2

4

いくつかのオプションがあります。1 つの方法は、名前付きのEventWaitHandleを作成することです。プロジェクト B が設定を更新すると、イベントが設定されます。プロジェクト A には、そのイベントを待機するスレッドがあります。通知を受け取ると、設定から更新し、イベントをリセットします。ここに簡単な例があります:実行中のコンソール アプリから別のコンソール アプリにメッセージを送信します。

プロジェクト B が新しい設定をプロジェクト A が読み取れる場所に保存する場合、これは機能します。メモリ内で実行する場合 (つまり、プロジェクト B が設定を保持しない場合)、2 つのプロセス間である種の通信をセットアップする必要があります。MemoryMappedFileを使用して共有メモリを設定できますが、その場合でもイベント通知が必要です。

または、プロジェクト B のサーバー ストリームとプロジェクト A のクライアント ストリームを使用して、名前付きパイプを設定することもできます。

于 2013-10-29T15:40:27.127 に答える
0

また、NancyFX のようなものを使用して、セルフ ホスティングが各アプリケーションから HTTP エンドポイントを公開し、物理ファイルを必要とせずに通信できるようにすることもできます。

チェックアウト: https://github.com/NancyFx/Nancy/wiki/Self-Hosting-Nancy

于 2013-10-29T15:50:07.440 に答える