次のコンポーネントを備えたシステムがあります。
プロセス A - サービスとして機能するコンソール アプリ - WCF を介してクライアントにサービスを提供する
プロセス B - サービスとして機能するコンソール アプリ - WCF を介してクライアントにサービスを提供する
プロセス C - サービスとして機能する小さな WInForm アプリ - WCF を介してクライアントにサービスを提供する
上記の各プロセスはダブルクリックで個別に開始できますが、個別の UI を非表示にして上記のすべてのプロセスを開始し、一種の統合された UI を表示する別のプロセス「サービス マネージャー」を用意することにしました。Service Manager プロセスとさまざまなプロセスとの間の通信は現在、TCP を介して行われていますが、必要に応じていつでも WCF に移動できます。誰かが尋ねる前に、TCP は最初は「Mono」に使用されていましたが、現在は使用されていません。
プロセス A が ServiceManager から開始されると、プロセス A が時間のかかるタスクを実行しているとします。これは、独自の UI がないためです。そのため、サービス マネージャーはプロセス A タスクの進行状況バーを表示する必要があります。
プロセス A には、確定的な進行状況バーを表示するためのすべての情報がありますが、そのデータをサービス マネージャーに送信するにはどうすればよいですか。「Step 1 of 1000」など
推奨される「デザインパターン」または私が始めることができるアイデアはありますか. Service Manager から開始されたすべてのプロセスは、進行状況のタスク データを Service Manager に送信するために同じコードを使用する必要があります (基本的には、何らかのインターフェイスを実装します)。すべてのプロセスには、Service Manager UI に独自の進行状況バーがあります。
.Net 3.5
使用言語 C#
ありがとう