1

ロジック レイヤー上で実行される UI レイヤーである WinForms アプリケーションがあります。

私のアプリケーションはクライアント サーバー IM プログラムです。内部プログラムが着信接続要求を受け入れるとき、単純なボタン テキストの変更によって UI を更新したいと思います。問題は、関心の分離、デカップリングです。

これを行う 1 つの方法は、リクエストを処理したときにロジック レイヤーによって変更され、独自のスレッドで UI によって常にチェックされる内部ブール値を公開することです。

これは私にとって最善の方法とは思えません。これを行うためのより良い方法が組み込まれていると思いますか?

4

1 に答える 1

1

「内部」プログラムでデリゲートを公開します。

public Action<bool> RequestProcessed { get; set; }

リクエストが処理されるときの内部コードのどこか

if(RequestProcessed != null)
   RequestProcessed(true);

GUIでメソッドを作成します

public void SomethingHappend(bool processed) {
  // Do gui stuff
  if(processed) {
  }
  else {
  }
}

GUI で、次のようにサブスクライブします。

innerInstance.RequestProcessed = SomethingHappened;
于 2013-09-15T16:52:32.517 に答える