2011-09-09 6 views
0

これはのMouseLeftButtonDown後のMouseLeftButtonUpまで、マウスの動きを監視し、私のコードです:Rx拡張機能を使って理解していますが、この中でPUSHモデルは何ですか?

var downs = Observable.FromEventPattern<MouseEventArgs>(this, "MouseLeftButtonDown"); 
var ups = Observable.FromEventPattern<MouseEventArgs>(this, "MouseLeftButtonUp"); 

var moves = Observable.FromEventPattern<MouseEventArgs>(this, "MouseMove").SkipUntil(downs).TakeUntil(ups).Repeat(); 
moves.Subscribe(me => { 
    Point pt = me.EventArgs.GetPosition(null); 
    tbPoints.Text += "X :" + pt.X + " Y :" + pt.Y + "\t"; 
}); 

すべてがうまく動作しますが、私はここで理解していないことPUSHは、この中にある何ですか?私はIEnumerableがPULLパターンに続き、IObservableがPUSHモデルに従うことを読んでいます。これを正確に押し込むのは何ですか?

答えて

3

イベントはこのコードではPUSHです。 observableに変換したさまざまなマウスイベントはすべて、そのイベントが発生するたびにイベントデータをコードにプッシュします。

一部のデータソースでは、プッシュモードのデータをデータソースに要求するときに、プッシュモデルが処理するデータが多くなっていることがデータの消費者に伝えられます。イベントはPUSHモデルのファーストクラスの例です。

Subscribeメソッドを使用すると、購読を使用すると、一部のデータ(この場合はマウスイベント)が使用可能になるたびにPUSHデータソースにコードを通知するように要求されているため、購読はブロックされません)

関連する問題