問題タブ [system.reactive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - RX Extensionsは、複雑なイベント駆動型プログラミングの問題を「解決」しましたか?
私は、すべてのデータを非同期で受信する新しい財務分析プロジェクトでRxを使用しています。私は自分の生産性と、イベントベースのコードがどれほど理解しやすいかにかなり驚いています(複雑なネストされたifとランダムな状態変数がどこにでもある以前のモデルのイベントハンドラーとは対照的です)。他の誰かがそれで遊ぶ機会を得ましたか?もしそうなら、あなたの考えのいくつかは何ですか?
.net - WPF 上の Silverlight ツールキット DragDrop
Microsoft は実際に、WPF で「正常に動作する」Rx/Silverlight Toolkit DragDrop のビルドを提供していますか?
私が言えることから、Rx DragDrop は SL ツールキット (WPF ではない) でのみ利用できます。
SL Toolkit は、WPF (さまざまな #defines) で使用できることを暗示しているようですが、それを行う方法に関する詳細情報は提供していません。
DragDrop が必要な場合、WPF に簡単に移植できますか、それとも 1 億行の SL Toolkit が必要ですか?
c# - IObservableを分割し、処理後に結合しますか?
IObservablesを試した後、メッセージバスを介した着信メッセージの処理についてIObservablesをテストすることにしました。基本的に私はを取得しIObservable<Request>
、Request
応答に応答するために必要な関数が含まれています。
処理中のある時点で、データを逆シリアル化し、リクエストから、実際に実行する必要があることを含むコマンドオブジェクトに変換する必要があります。コマンドはリクエストとは関係ありません。
デシリアライズした後、適切な応答に変換しますが、応答を送信するには、元のRequestオブジェクトが必要です。高いコード可読性を維持しながら、これを実現していきたいと思います。これまで、拡張メソッドとラムダ式を使用して、以下を取得しました(ここrequests
で、はIObservable<Request>
):
私の質問は、Zip
関数の前のすべてのコマンドは処理に時間がかかるためZip
、メッセージの一定のストリームがある場合、同じ入力オブジェクト(つまり、元の入力と、別々に処理された入力)で動作しますか?どうすればこれをテストできますか?
これを行うためのより良い方法はありますか?
c# - 有用または重要なデュアルインターフェイスの例
最近、Erik MeijerらIObservable/IObserver
は、のデュアルがどのようになっているのかを示していますIEnumerable/IEnumerator
。それらがデュアルであるという事実は、一方のインターフェイスでのすべての操作がもう一方のインターフェイスでも有効であることを意味します。したがって、.Netのリアクティブエクステンションの理論的基盤を提供します。
他のデュアルインターフェイスは存在しますか?.Netベースだけでなく、あらゆる例に興味があります。
c# - サブスクリプションが相互に作用するのはなぜですか?
私は RX を試していて、次の問題に出くわしました (少なくとも私はそれを問題として認識しています)。次のコードは、オブザーバブルを作成し、それを 2 回サブスクライブします。サブスクリプションは独立して動作する必要があると考えたので、以下のコードは、キーを押すたびにサブスクリプションごとに 1 行ずつ、2 行を出力します。しかし、そうではありません。特定のキー ストロークを処理するサブスクリプションは常に 1 つだけです。なぜこれが起こっているのですか?複数のオブザーバーを行うための「推奨される」方法は何ですか?
system.reactive - Reactive Framework、PLINQ、TPL、Parallel Extensionsはどのように相互に関連していますか?
少なくとも.NET4.0のリリース以来、Microsoftは並列および非同期プログラミングのサポートに多大な努力を払ってきたようであり、これに関連する多くのAPIとライブラリが出現したようです。特に、最近は次のような派手な名前がどこでも絶えず言及されています。
- リアクティブフレームワーク、
- PLINQ(Parallel LINQ)、
- TPL(タスク並列ライブラリ)と
- 並列拡張。
現在、これらはすべてMicrosoft製品のようであり、.NETの非同期または並列プログラミングシナリオを対象としているようです。しかし、それらのそれぞれが実際に何であるか、そしてそれらが互いにどのように関連しているかは完全には明らかではありません。いくつかは実際には同じものかもしれません。
一言で言えば、誰もが何が何であるかについて記録を立てることができますか?
wpf - 観察可能INotifyPropertyChanged - 接続はありますか
IObservable<T>
&IObserver<T>
はオブザーバー パターンの実装であり、.Net イベントと同様の状況で使用できることを理解しています。
と何か関係があるのかなINotifyPropertyChanged
?
現在INotifyPropertyChanged
、winforms と WPF アプリケーションでデータ バインディングに使用していますが、UI データ バインディング シナリオで IObservable を使用できるかどうか疑問に思っていましたか?
乾杯
AWC
c# - ObserveOnDispatcher を使用した単体テスト
次のように、ビューモデルにいくつかのコードがあります。
次に、私のテストでは、次のようにサービスを「モック」しています。
問題は、ObserveOnDispatcher が原因で、サブスクライブ デリゲートが実行されないことです。
DispatcherFrame と PushFrame を使用したコードを見たことがありますが、問題は「どこで」わからないことです。呼び出すことができます
c# - メソッドの IObservable を作成する良い方法は何ですか?
クラスがあるとしましょう:
Doメソッドによって生成される値のオブザーバブルを作成したいと思います。これを行う 1 つの方法は、 Doから呼び出されるイベントを作成し、 Observable.FromEventを使用してオブザーバブルを作成することです。でも、仕事のためだけにイベントを作るのは、なんとなく気分が悪い。それを行うより良い方法はありますか?
c# - IObservable と Reactive Framework を使用して foreach を書き換える
私はEntity Frameworkを使用してVS2008にいます。WHERE IN 機能に esql を使用して、データベースからオブジェクトにアクセスしています。大量の ID を select ステートメントに渡しているので、それを 800 個のセットにチャンクします。次に、各チャンクの結果をマージします。私の目標は、同期的に待機するのではなく、各チャンクの結果を並行して取得することです。Reactive Framework をインストールしましたが、ForkJoin を使用する必要があると確信しています。ただし、この関数を変換して使用する方法がわかりません。これが私の既存のコードです:
ありがとう!
編集 >>> 以下のように、貧乏人を使用するようにコードを変更しました。
初めてうまくいきました。しかし、2回目に実行すると、次のエラーが発生しました。
接続は閉じられませんでした。接続の現在の状態は接続中です。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.InvalidOperationException: 接続が閉じられませんでした。接続の現在の状態は接続中です。
ソース エラー:
49 行目: foreach (resultList の var iAsyncResult) 50 行目: { 51 行目: del.EndInvoke(iAsyncResult); 行 52: iAsyncResult.AsyncWaitHandle.Close(); 53行目: }
興味深いことに、b/c Emre (ライブラリの作成者) は元の投稿を編集して、安全性を高めるためにこれらのコード行をどのように追加したかについて語っています。私はそれを正しく使用していますか?それとも、結局のところ、v1 の方が安全だったのでしょうか?