タグ付けされた質問 「system.reactive」

16
.NET Reactive Frameworkの優れた紹介[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する Microsoftのドキュメントの他に、Microsoft Reactive(Rx)フレームワークの入門とチュートリアルはありますか? また、Reactiveが従来の非同期コーディング技術を使用して解決するのが難しいプログラミングの問題を容易にする良い例(コード付き)は何ですか?

1
Windows Phoneのリアクティブ拡張機能のバグ
でコンパイルされVS 2012、プロジェクトタイプでWP 8.0は、デバッガが接続されていない場合、次のコードは失敗します。 どういうわけか、デバッガが接続されていない場合、コンパイラの最適化により内部のコードが破壊さCrash()れます- コード内のコメントを参照してください。 Lumia 1520(8.1)およびLumia 630(8.0)でテスト済み。 なぜこれが起こっているのですか? public partial class MainPage : PhoneApplicationPage { public MainPage() { InitializeComponent(); Button.Tap += (sender, args) => new A<B, string>(new B(), "string").Crash(); } } public class B { public void Foo<T>(T val) { } } public class A<T1, T2> where T1 : …

5
.NET Reactive Extensionsでサブジェクトが推奨されないのはなぜですか?
私は現在、.NETのReactive Extensionsフレームワークに慣れつつあり、私が見つけたさまざまな導入リソース(主にhttp://www.introtorx.com)に取り組んでいます 私たちのアプリケーションには、ネットワークフレームを検出するいくつかのハードウェアインターフェイスが含まれます。これらはIObservableになります。次に、これらのフレームを使用したり、データに対して何らかの変換を実行して新しいタイプのフレームを生成したりするさまざまなコンポーネントがあります。たとえば、n番目のフレームごとに表示する必要がある他のコンポーネントもあります。Rxがアプリケーションに役立つと確信していますが、IObserverインターフェイスの実装の詳細に苦労しています。 私が読んでいたリソースのほとんど(すべてではないにしても)は、IObservableインターフェイスを自分で実装するのではなく、提供された関数またはクラスの1つを使用するべきだと述べています。私の研究から、を作成するSubject<IBaseFrame>と必要なものが提供されるように見えSubject<IBaseFrame>ます。ハードウェアインターフェイスからデータを読み取り、インスタンスのOnNext関数を呼び出す単一のスレッドが必要です。異なるIObserverコンポーネントは、そのサブジェクトから通知を受け取ります。 私の混乱は、このチュートリアルの付録に書かれているアドバイスから来ています: サブジェクトタイプの使用は避けてください。Rxは事実上、関数型プログラミングのパラダイムです。サブジェクトを使用するということは、状態を管理していることを意味します。状態の変化と非同期プログラミングの両方を同時に処理することは、正しく行うのが非常に困難です。さらに、多くの演算子(拡張メソッド)は、サブスクリプションとシーケンスの正確で一貫したライフタイムが維持されるように注意深く書かれています。主題を紹介すると、これを壊すことができます。サブジェクトを明示的に使用すると、将来のリリースでもパフォーマンスが大幅に低下する可能性があります。 私のアプリケーションはパフォーマンスが非常に重要です。Rxパターンを使用してパフォーマンスをテストしてから、本番用コードに移行します。ただし、Subjectクラスを使用してRxフレームワークの精神に反することを行っていること、およびフレームワークの将来のバージョンがパフォーマンスを低下させることを心配しています。 私がやりたいことを行うより良い方法はありますか?ハードウェアポーリングスレッドは、オブザーバーの有無に関係なく継続的に実行されるため(HWバッファーはそれ以外の場合にバックアップされます)、これは非常にホットなシーケンスです。次に、受信したフレームを複数のオブザーバーに渡す必要があります。 どんなアドバイスもいただければ幸いです。

2
IEnumerable.ToObservableが非常に遅いのはなぜですか?
私は大規模な列挙しようとしていますIEnumerable一度、および添付のさまざまな演算子(と列挙を観察しCount、Sum、Averageなど)。明白な方法は、それをIObservableメソッドToObservableでに変換し、オブザーバーをサブスクライブすることです。これは、単純なループを実行して各反復でオブザーバーに通知する、またはObservable.Create代わりにメソッドを使用するなど、他のメソッドよりもはるかに遅いことに気付きましたToObservable。違いはかなり大きく、20〜30倍遅くなります。それはそれが何であるか、または私は何か間違ったことをしていますか? using System; using System.Diagnostics; using System.Linq; using System.Reactive.Disposables; using System.Reactive.Linq; using System.Reactive.Subjects; using System.Reactive.Threading.Tasks; public static class Program { static void Main(string[] args) { const int COUNT = 10_000_000; Method1(COUNT); Method2(COUNT); Method3(COUNT); } static void Method1(int count) { var source = Enumerable.Range(0, count); var subject = new Subject<int>(); var …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.