1

Rx での Subject の実際の使用法は何ですか。101 個のサンプルのうち 1 個のサンプルを見つけましたが、これをどこに適用するかについて明確なアイデアが得られなかったと思います。Rxでの件名の作業を示す簡単なサンプルを投稿してください。これをWindows Phoneのコンテキストで使用しています。

4

2 に答える 2

7

Subject<T>List<T>Rx です - 手動でシグナルを送ることができる IObservable です:

var subj = new Subject<int>();
subj.Subscribe(Console.WriteLine);

subj.OnNext(4);
subj.OnNext(5);
subj.OnCompleted();

>>>  4
>>>  5

コールバックや APM など、非 Rx パターンを使用する非同期メソッドを「ラップ」するのに非常に便利です。私の本からこの例をチェックしてください。

于 2012-05-14T17:51:11.433 に答える
1

現在のガイダンスでは、コード ベースでサブジェクトを使用しないようにする必要があります。それが私の意見であり、最近 Bart De Smet (Rx の作者) に口頭で同意してもらいました。

サブジェクトの使用を目にするほとんどの場合、Observable.Create<T>(IObserver<T>) または別のファクトリ (FromEventPattern、Timer、FromAPM など) に置き換えることができます。

この件に関する私のブログ投稿を参照してください。

http://www.introtorx.com/Content/v1.0.10621.0/02_KeyTypes.html

http://www.introtorx.com/Content/v1.0.10621.0/04_CreatingObservableSequences.html#CreationOfObservables

http://www.introtorx.com/Content/v1.0.10621.0/18_UsageGuidelines.html

このガイダンスには 2 つの適切な例外があります。

  1. プロパティのバッキング フィールドとして BehaviorSubject<T> を使用している場合
  2. MultiCast オペレーターを使用している場合、サブジェクトを使用すると、探している機能セットを提供できます...または、.Replay()、.PublishLast() などの組み込みのものを使用するだけです
于 2012-07-06T13:58:50.920 に答える