2

スレッド内からUIを更新する従来の方法は何ですか?

たとえば、ユーザーのログインを処理するクラス内のメソッドがあります。この方法では、ログインプロセスのさまざまな段階で、UI(メインスレッド)のラベルの形式でユーザーにフィードバックを提供したいと思います。

public void userLogin(User _user)
{
    // 1. Navigate to site.com
    // 2. Update label on UI
    // 3. Attempt login
    // 4. Update label on UI
    // 5. Check login status
    // 6. Update label on UI
}

クラス自体は他のプロジェクトで使用され、別のプロジェクトの他のチームメンバーによって使用されるため、メソッド内にUIを更新するためのコードを含めたくありません。一部のプロジェクトでは、UIのラベルを更新するのではなく、デバッグのためにログファイルに保存することを決定する場合があります。どんな形のカップリングも作りたくありません。

最善の解決策は何ですか?イベントは行く方法でしょうか?

ところで。.NET 4.5とC#5を使用しています。

4

2 に答える 2

2

オブザーバーパターンに従い、イベントを使用するのが最善の選択肢だと思います。それは本当に彼らが使用されるように設計されているものです。

オブザーバーパターンは、サブジェクトと呼ばれるオブジェクトがオブザーバーと呼ばれる依存関係のリストを維持し、通常はメソッドの1つを呼び出すことによって、状態の変化を自動的に通知するソフトウェアデザインパターンです。

于 2013-03-12T02:06:19.587 に答える
0

Windowsフォームでは、 BackgroundWorkerクラスを使用できます。

于 2013-03-12T01:59:37.187 に答える