0

アプリの起動時にConnectメソッドを使用してサーバーに接続するリスナークラスがあるとします。その後、メッセージのリッスンを開始し、受信したメッセージごとにイベントOnRecievedMessageを発生させます。これらのメッセージに基づいて、ビューモデルを更新する必要があります。ビューモデルはビューを更新します。さらに、UIをブロックしないようにするには、新しいスレッドでListen()メソッドを実行する必要があるため、イベントOnRecievedMessageもこの新しいスレッドで実行されます。

このようなクラスをWPF/MVVMアプリケーションの構造にどのように組み込み、それをviewmodelに接続する方法を教えてください。

4

1 に答える 1

1

このシナリオでは、イベントを使用しませんIObservable<T> 。IObservableはオブジェクトであり、取得した関数との間で簡単に受け渡しできるため、公開します。

  • これをビューモデルに簡単に挿入できます
  • フィルター/マップおよびUIスレッドへのディスパッチ
  • ハンドラーのフックを簡単に解除します(破棄と "-=")

したがって、「Listener」クラスを渡さないでください。実装/公開するIObservableを渡してください。

Rx-Frameworkを必ずご覧ください

于 2012-10-30T14:26:20.820 に答える