BT

.NET 4.5用のReactive Extensions

| 作者: Jonathan Allen フォローする 595 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2011年11月3日. 推定読書時間: 2 分 |

原文(投稿日:2011/10/31)へのリンク

.NET 4.5の新しい機能は、 Reactive Extensionsのようなバンドライブラリの意味を再吟味できる機会となる。 Bart De Smet 氏は、Rxの実験的なリリースに何が含まれているのかについて語った。またJavaScript と C++向けのRxについても述べている。

まずはRxの ExceptionDispatchInfoのサポートである。.NETのこれまでのバージョンでは、例外は、それが投げられたのと同じスレッドによってキャッチされることを期待していた。それを他のスレッドに移す必要のあったライブラリは、それらをフィールドとして、マーシャルされたコールバックに渡し、その後それらは一般的な例外でラップされた。この新しい例外は、その下の本当のエラーを見るためには、ラップをとかなければならないことになる。

ExceptionDispatchInfo.Captureメソッドは例外をキャッチするのに使われている。それは、 ExceptionDispatchInfo.Throwメソッドを使って正しいスレッドに再スローされる。スタックトレースには、新しい場所と元の場所の両方からのフレームが含まれており、両方を区別するために「例外が投げられた前の場所からのスタックトレースの最後」という文が付いている。

Reactive Extensionsが作成された時、Task<T>への依存状態を取り込むことができなかった。 単にTask Parallel Libraryが未だリリースされていなかったわけで、今日でさえ、 Silverlightのように多くのプラットフォームが未だTPLをサポートしていない。回避策として、Rxライブラリは、その代わりに、 .NETに元々ある非同期パターンの上に作られた。そしてobservableはObservable.FromAsyncPatternメソッドを介して作られた。

C# 5 と VB 11でのasync/await サポートがtaskの上に作成されたので、様々なプラットフォームが Task Parallel Libraryを完全にサポートするつもりになっている。このお蔭でRxプロジェクトは、遂にobservableをTask<T>から直接作ることができる。

taskとobservable間の変換に加えて、 Reactive Extensionsはまた、直接 awaitキーワードをサポートする予定である。これはIObservable シーケンスの最後のアイテムを返すだろう。もしシーケンス中の全アイテムが欲しければ、 ToListを使って IObservable<T> から IObservable<List<T>> に変換することになる。

他の変更としては、 Average やForEachのようなブロック操作の差し替えである。例えば、新しい ForEachAsyncは待つことができるTaskを返す。

JavaScript版のライブラリであるRxJSは、Rxの現行の製品ビルドをベースにした新バージョンになる予定だ。スケジュールはわかってないが、磨きをかけている段階にあるとのことである。 Reactive Extensionsチームはまた、ネイティブ開発者を巻き込んで、暫定的にRxCと言われているC++バージョンも開発している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT