81

Rxの基本を理解しています。私が苦労しているのは、学術的な例を超えて実際にこれをどのように使用するかということですか? Rx が現在の .NET よりもはるかに優れたソリューションである、一般的で単純な実世界のシナリオは何ですか?

4

6 に答える 6

39

たくさんの良い例については、101 RxSampleswikiを参照してください。

于 2010-03-31T06:04:40.370 に答える
28

Rx を使用すると、同時発生イベントをまとめて調整するコードを作成できます。TPL (つまり、タスク) を使用したことがあり、正しいもので ContinueWith または WaitAll を試行するために複雑なバックフリップを行う必要があった場合は、Rx が最適です。

たとえば、「この配列の各項目に対して Web サービスを呼び出し、それらの要求がすべて戻ってきたら、別のことを行います。そのうちの 1 つでも失敗した場合は、すべてを失敗させる」というワークフロー。

開示、恥知らずなプラグイン: Jesse Liberty と私が Rx について書いた本は、まさにこの質問を解決するために設計されました。「これで何ができますか?」

于 2011-11-07T02:18:20.050 に答える
25

まず、IObservableは eventです。したがって、内部でイベントを使用する場所であればどこでも IObservable を使用できます。後でこのイベントに LINQ を適用する必要がある場合は、リファクタリングせずに実行できます。

第二に、RX は、コードを非同期的に実行する必要があるあらゆる状況に適しています。たとえば、Web サービスの呼び出しや大きな画像の読み込みなどです。

しかし、それが本当に輝き始めると、プログラムがIObservableの使用量の「クリティカルマス」に達し、さまざまなオブザーバブルを組み合わせ始めると、いくつかのタスクがどれほど簡単になるかに驚かれることでしょう。

于 2010-04-25T02:03:11.857 に答える
5
  • デバイス測定
  • メッセージ バスを介して着信するデータ

現在、どちらの場合も、データを受け取る標準​​的な方法はイベント経由ですが、クエリ構文または構成が必要な場合は、RX がイベントがない場所でそれを提供してくれます。

于 2010-04-19T18:44:22.513 に答える
2

Rx は非常に一般的であるため、IEnumerable/IEnumerator に無制限のユーティリティがあるように、無制限のユーティリティがあります。IE は値をプルし、IO は値をプッシュします。

Foreach は、IEnumerable が便利な場所の具体的な例ですが、IEnumerable や yield などについては説明していません。Rxも同様です。

プルの視点またはプッシュの視点のいずれかから何かを見て、方向または手段を制御できることは非常に強力です。LINQ クエリを使用して、計算を自由にプッシュおよびプルできるようになったからです。 IE の数学的双対であるため、IO に対して「無料」の演算子。

于 2010-05-02T06:10:17.370 に答える
0

Rxを初めて見たばかりですが、これを使用する楽しいプロジェクトの1つは、ASP.NET MVC Webアプリ(どのアクションメソッドがどのユーザーによって呼び出されたかなど)でアクティビティを表示するSilverlightウィジェットを作成することです。 。Rxは、同時実行管理やスロットリングなど、このプロジェクトで多くのことを支援できるようです。

于 2011-06-07T22:43:29.817 に答える