問題タブ [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.

0 投票する
1 に答える
1337 参照

c# - 静的イベントで Observable.FromEvent を使用するには?

Reactive Extensions を使用して、開始メソッドと完了イベントの両方が静的な非同期呼び出しを処理するコードを記述しようとしています。使えない

LanguageManager はインスタンスではなく静的クラスなので、試してみました

ただし、「デリゲート型ではないため、ラムダ式を型 'オブジェクト'に変換できません」という構文エラーが発生します。イベントは次のように宣言されます

したがって、これはデリゲート型であり、おそらく静的であるという事実が誤解を招くエラーの説明を生成していると思います。

これを行う方法はありますか、それともこのような非反応的なコードに固執する必要がありますか?

0 投票する
1 に答える
909 参照

system.reactive - System.IObserverの.NET3.5代用

以前のバージョンのフレームワークもサポートする必要があるライブラリに.NET4.0インターフェイスIObserverを使用したいと思います。フレームワークのバージョンごとにビルドできる条件付きコンパイルがすでにあります。

Rx Extensionsのバージョンを使用したくないのはIObserver<T>、それ以外の場合はスタンドアロンアセンブリに不要な依存関係が追加されるためです。

私が検討しているのは、このコードブロックをライブラリに追加することです。皆さんへの私の質問は、次のとおりです。

1)これは悪い考えだと思いますが、「なぜ」と正確に理解しようとしています。

標準のインターフェイスを使用して、.NET4.0ユーザーがまだ考えもしなかったクールな方法で統合できるようにしたいと思います。したがって、概念を複製して、他の今後の使用法との統合を失いたくありませんIObservable<T>

私が目にする危険は、ライブラリの.NET3.5ビルドが.NET4.0で使用されている場合、型の衝突が発生する可能性があることです。ただし、理想的には、v4.0を使用している人はライブラリの4.0ビルドを使用します。

このアプローチで知っておくべきことは他にありますか?

2)あるいは、代わりにコードでこれを行うことを検討しました(これは私が傾いている方向です)。これがなぜ悪い考えであるかについての人々の考えを知りたいです。

そして後で私がそれを使いたいところ:

何かご意見は?

0 投票する
2 に答える
1104 参照

c# - Rx.Net でどうしても助けが必要

こんにちは、私は Rx の初心者で、簡単なテスト アプリを作成しようとしています。基本的に、Rx を使用してウィンドウ クリック イベントをサブスクライブし、テキスト ボックスのテキストを "Clicked" に設定します。wpfアプリです。xaml は次のとおりです。

コードビハインドは次のとおりです。

しかし、何らかの理由でコードが実行されません。メッセージが表示されます:

指定されたバインディング制約に一致するタイプ 'Reactive.MainWindow' でのコンストラクターの呼び出しで、例外がスローされました。行番号 '3' および行位置 '9

InnerException メッセージ:

イベント デリゲートは、void Handler(object, T) の形式である必要があります。ここで、T : EventArgs.

助けてください!!!

0 投票する
2 に答える
11316 参照

.net - System.Threading.dllがWindows\Assemblyから欠落しているのはなぜですか?

XPProfessionalを実行しているリモートマシンにさまざまなバージョンの.NETFramework(バージョン1.1から4.0)をインストールしました。私もReactiveExtensionをインストールしました。

ここにあるSystem.Threadingを参照しているため、自分のマシンで動作するアプリケーションもあります:C:\ Program Files \ Microsoft Reactive Extensions \ redist \ desktopV2 \ System.Threading.dll

GACにも2つのバージョンのDLLがあります。

2つの質問:

i)ファイルを参照するのではなく、リストから選択したときに、これが参照するバージョン(インスタンス)であるとVisual Studioが判断したのはなぜですか?

ii)System.Threadingがリモートマシンに存在しないのはなぜですか?(私はそれがフレームワークのコア部分だと思いました)

ありがとう

0 投票する
1 に答える
898 参照

unity-container - UnityでIObservableを使用する

iobservable パターンを使用して、一連のイベントを公開したいと考えています。問題は、ユニティを使用してオブザーバーとイベント ジェネレーターの両方を作成していることです。イベントのリッスンを開始できるように、アプリケーションの開始時にこれらの両方を新しくする必要はありません。これについて何か提案はありますか?

0 投票する
3 に答える
2384 参照

mvvm - MVVMViewModel内でRxObservableイベントストリームを取得する方法

私はちょうどRxHOLNETを読んでいました。検索時(例ではWindowsフォームを使用):

一部のWPFMVVMセットアップでViewModelへの移動への参照をインスタンス化して渡すにはどうすればよいですか?私の理解では、ViewModel内でこのデータストリームをフィルタリングしようとすることは理にかなっています。

または、TextBoxへのキーボード入力に対して同様のことを行う方法は?このシナリオでは、たとえば、テキストマスキング動作をXAMLのコントロールにアタッチせず、代わりに、VMのオブザーバーにキーボード入力のフィルター処理と検証を許可します。

私は完全に軌道から外れていますか?

0 投票する
2 に答える
12390 参照

c# - Rx - イベントの登録解除

INotifyPropertyChanged オブジェクト Foo があります。Rx の FromEvent メソッドを使用して、Foo を監視可能なイベント ストリームに変換します。

ここで、特定のプロパティの変更をリッスンし、.Progress == 100 の場合は購読を解除したいと考えています。

Progress == 100 の場合、どのように登録を解除できますか? .Where 句の後に .Take(1) 呼び出しを追加すると、自動的に登録解除されますか?

0 投票する
1 に答える
373 参照

.net - リアクティブエクステンションを使用して、最新のイベントが受信されてからx秒後まで一連のイベントの最新のイベントを保持します

私は、リアクティブ拡張を使用して次のシナリオを実装する方法を理解しようとしています。私が検討している他の解決策には、一連のタイマーの管理が含まれます...可能であれば避けたいと考えています。

シナリオ
「ActionRequests」のストリームが発生しています。ActionRequestのストリーミングは、さまざまなオブジェクトソースからのものです。特定のソースからのリクエストがx秒間停止した場合にのみ、最新のActionRequestを取得することに関心があります。

だからそれを分解します。

  • イベントは、さまざまなオブジェクトソースから継続的に受信されています。
  • さまざまなオブジェクトソースはGUIDで示されます-ActionRequestsクラスを参照してください
  • オブジェクトソースからのx秒の無音の後、最新のイベントがプッシュされます。
  • 関心のある最新のActionRequestを受信すると、古いメッセージを破棄できます。

    これについての考えをいただければ幸いです。

  • 0 投票する
    1 に答える
    292 参照

    c# - このコードは、リアクティブ フレームワークを使用してリファクタリングできますか?

    次のコードをコピーして、新しい C# コンソール アプリに貼り付けます。

    2 スレッド (A、B)

    スレッドは一度に 1 つのインスタンスを提供でき、Set メソッドを呼び出します B スレッドは一連のインスタンスを受け取りたい (スレッド A によって提供される)

    したがって、文字通り Add(item)、Add(item)、.. を異なるスレッド間で IEnumerable に変換する

    もちろん、他のソリューションも大歓迎です!

    0 投票する
    3 に答える
    3540 参照

    .net - Reactive Extensions: さまざまな間隔のスロットル/サンプル

    ランダムな間隔で値を生成するがあり、IObservableこのシーケンスを抑制したいと考えています。私が発見したことの 1 つは、Throttleオペレーターの「スロットリング」の定義が私のものと同じではないということです。

    Throttle指定された間隔が無音で経過した後にのみ値を生成します(最後に表示された値を生成します)。スロットリングとは、指定された間隔で値を生成することを意味すると思いました (もちろん、無音でない限り)。

    Observable.Interval(100).Select((_,i) => i).Throttle(200)たとえば、 「半分の速度」に調整しているため、(パフォーマンス/タイミングの問題をモジュロとして)偶数を生成することを期待していました。ただし、長さ 200 の無音期間が存在しないため、このシーケンスにはまったく価値がありません。

    それで、私がSample望む「スロットリング」動作を実際に行うことを発見しました。Observable.Interval(100).Select((_,i) => i).Sample(200)偶数のシーケンスを生成します(ここでも、パフォーマンス/タイミングの問題をモジュロします)。

    ただし、もう 1 つの問題があります。間隔は、最後に「サンプリングされた」値に応じて異なります。私が欲しいのは、次のような演算子を書くことです:

    パラメータは次のサンプルのintervalSelector間隔を生成し、最初のサンプルは...最初の値で取得されるか、追加のパラメータから取得されますが、気にしません。

    これを書いてみましたが、うまく機能しない大規模で複雑な構造になってしまいました。私の質問は、これを既存の演算子を使用して (別名、ワンライナーで) 構築できますか?