同時に、若干パズル的な気がしなくもない。までは待機してたという、おいおい、非同期でやってるのに同期かよ、って感じだったので本領発揮で非同期のままの流るような実行を。TaskではContinueWith、Rxでは、72通りあるから何を言えばいいのか。IPAddress[]なので。.Subscribe(Console.WriteLine);ContinueWithは、まあごく普通に結果が流れてきてるんだなー、程度。この場合のContinueWithに該当するのはSubscribeで、まあそれは普通なのですが、それよりしかし流れてくるIPAddress[]の[]がウザいので、Linq的に扱うならフラットにしたいよね。いうわけで、IObservable<IPAddress[]>をSelectManyでIObservable<IPAddress>に変換しています。SelectManyはIObservableだろうとIEnumerableだろうと、平等にバラします。狂気すら感じるパワー。その結果を一辺に受けたい場合ってありますよね。そんな場合はForkJoinで。ForkJoinよく出てくるなあ。xs[1].Length));そろそろマンネリ気味で疲れてきた。あ、最後にデッカイのがありますね。TaskではContinueWhenAllが初お目見え。Rxでは別に変わらずForkJoinなんだよねえ。非同期実行なので終了しないように}ふむ(何がふむだ)非同期とUIスレッドDispatcher.BeginInvokeさようなら!ですね。ObserveOnはRxだけの専売特許じゃない。Taskにだってあるもん。});}真面目に、このObserveOnDispatcherは死ぬほど役立ちです。まとめ機能的には十分被る。汎用的なはずのRxが専用のはずのTaskでの処理を十分に代替出来てしまうという事実に驚く。言うのもアレですが、これは確実にヤバい。ビッグウェーブはもう既に来てる。乗り遅れてもいいんで乗ろう!それにしてもMSDNマガジン素晴らしいなあ。この記事は実に入門向けに満遍なくも濃密で、素敵な時間を過ごせた。いやあ、一時期は機械翻訳のみになってたけれど、再び翻訳に戻って大変ありがたい。RxもMSDNマガジンに記事が来てもいいのでは?もしくはMSKKの人がですね。