xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

Rx

Rx入門 (10) - 時間のシーケンス化

Rx

前回までで、IObservable<T>に対してLINQスタイルでの記述ができることを見てきました。これから3回ほどは、時間/イベント/非同期処理をIObservable<T>としてみなし、情報を通知する方法について触れていきます。 MouseMoveなどの各種イベント、一定間隔で発行され</t></t>…

Rx入門 (9) - Where/Selectの自作

Rx

前回はLINQの記述を用いて、流れてくるデータをフィルタリング (Where) したり、変換 (Select) したりしました。今回はこれらを自作することで、より理解を深めてみようと思います。 実装へのアプローチ IObservable<T>がIObserver<T>に情報を流すというのが、Rxで</t></t>…

Rx入門 (8) - LINQスタイルでの記述

Rx

今回はRxの特徴のひとつであるLINQスタイルでの記述について触れてみます。みんな大好きなLINQ、これができると世界がまた変わります。 情報伝播のイメージ 今回はLINQの中でも特に基本的なWhere/Select文を取り上げてみます。前回の「山から湧き出る水」イ…

Rx入門 (7) - IObservable<T>の生成

Rx

「Rx入門 (4) - IObserver<T>の省略」では、受信側であるIObserver<T>を省略した書き方について取り上げました。その記事の冒頭で「送信側はさておき...」と送信側のことは棚に上げていましたが、そうは言ってもやはり送信側もIObservable<T>をいちいち実装するのは手</t></t></t>…

Rx入門 (6) - Subject<T>の亜種

Rx

前回は、Rxの動作確認などを楽にしてくれるSubject<T>について触れました。今回はこれの亜種を紹介します。 ReplaySubject<T> ひとつ目はReplaySubject<T>です。ReplaySubject<T>は、OnNextが呼び出されたときに値を通知すると同時にその値をキャッシュします。新たにSub</t></t></t></t>…

Rx入門 (5) - Subject<T>の利用

Rx

前回はIObserver<T>の生成を隠蔽し、より簡略化した記法を学びました。今回はさらにIObservable<T>も簡略化してみます。 一人二役のSubject<T> Rxのライブラリ (System.Reactive.dll) にあるSystem.Reactive.Subjects名前空間の中に、Subject<T>というクラスがあります。</t></t></t></t>…

Rx入門 (4) - IObserver<T>の省略

Rx

前々回のオブザーバーパターンの例では、IObservable<T>とIObserver<T>の具象クラスをそれぞれ実装しました。しかし、送信側はさておき、挙動が変わりやすい受信側がいちいちIObserver<T>を実装するのは現実的ではありません。そこで今回は、IObserver<T>の省略について</t></t></t></t>…

Rx入門 (3) - Push型とPull型

Rx

今回はPush型とPull型の考え方について見ていきます。Push/Pullと言われても何のこっちゃですが、データの流れ方のことです。 Push型 Push型配信の典型的な例に、携帯電話のキャリアメールがあります。携帯電話が定期的にサーバーにメールを確認しに行くので…

Rx入門 (2) - オブザーバーパターン

Rx

Rxの根幹となる考え方はオブザーバーパターンです。まずはこのオブザーバーパターンについて見て行きます。 オブザーバーパターンの概要 オブジェクト指向プログラミングにおいては、「あるオブジェクトが変化したとき、その変更に合わせて他のオブジェクト…

Rx入門 (1) - はじめに

Rx

近年のアプリケーションの高度化は凄まじいものがあります。ユーザーはその進化にどんどん慣れていき、より新しいもの、かっこいいもの、快適なものを求めるようになります。特に "快適" というのは非常に重要な要素で、使っていてストレスの溜まるようなア…