一般に、書きにくいパターンの一つが非同期的な動作です。今日、一般的なC言語の流れを汲む言語の場合には多くの場合、コールバック関数若しくはその類型のようなパターンを取るためプログラムが複雑化しデバッグも困難になりがちです。Reactive Extensionsはそういった非同期的な動作を平易に書くことのできるライブラリです。公式サイト上ではReactive Extensionsはなんであるかという、回答として以下の記載があります。
a library to compose asynchronous and event-based programs using observable collections and LINQ-style query operators.
公式サイトの文言がすべてと言えますが、非同期系とイベントベースのプログラムを書くためのライブラリということができます。国内だとneueccさんの記事が多分、入門としてはベターなんですがさくっと示すと、基本的に非同期系のコードは一般にコールバックの形態を取ります。まあ、C#なんかだと匿名関数が使えるのでコールバックは匿名関数として書くとしても、結果的にカッコのネスト構造はどんどん深くなります。しかも、通信系なんかだと例外処理は必須ですからその辺を考慮するとすごいことになります。この辺はneueccさんの説明がいいかと思います。これは、既にWindows 8時代を見据えたアプリケーションの構築で触れたので繰り返しません
とはいえ、サンプルでもないと判りづらいんですよね。知られているサンプルとしては101 Rx Samplesがあります。WinRTではある程度の待ち時間を発生させる機能は基本的には非同期呼び出しということになるようなのでRxは知っておいて損はしないですね。

コメントする