現在、私は結果のIListを返すNHibernateでデータベースselectを発行しています。次に、リストにIList.ToObservableを使用して、私が購読できるObservableを取得します。リストをObservableに変換するのではなく、どうすれば反応的なパラダイムに書くことができますか?C#でリアクティブエクステンションを使用して、同期ポーリングデータベースクエリを非同期プッシュにする方法を教えてください。
答えて
Reactive Extensions を使用してデータベース呼び出しを行う最善の方法は、まったくそれを行うものではありません。
脇の下の1ライナーを除いて、これは深刻なポイントです。手掛かりは疑問です... IOバインドをと呼んでいるので、あなたは本当に非同期プル状態です。
C#8(IAsyncEnumerable - which already has placeholders in the Rx github repo)では、このためのファーストクラスの言語サポートが用意されています。
しかし、プロンプトの応答を期待している呼び出しを開始したときに、Observableとして同期呼び出し応答を公開することは本当にありません。観察可能なデータは、データが出現するかどうかわからないときのプッシュシナリオ用です。クエリを非同期にして、伝統的に結果が得られるようにすることができます。
Rxで非同期DBクエリが頻繁に表示されるのは、UIのキー押下などの適切な観測可能イベントに由来する観測可能なチェーンの一部です。 keypressイベントはObservableに供給され、Observableはasyncクエリに投影され、UIにポップされます。 The example hereには、非同期DBクエリと同じように簡単なサービスコールがあります。重要な部分は、getSuggestions
非同期calの使用と、それが観測可能なクエリにどのように組み込まれているかです。
この状況でも、サービス呼び出し自体はObservableを直接返さない非同期プルです。それは他の観察された事象によって開始されている。
データベースへの非ブロッキング非同期呼び出しを使用し、結果が来るとサブスクライブするので、これは間違いなく良い方法です。したがってプッシュをプッシュに変えます。 Observable.FromAsyncは欠けていたキーパターンです! – Chip
- 1. 非同期マージコミット(git)を修正する方法を教えてください。
- 2. Pythonでトリガされたタスクやイベントを非同期でブロックする方法を教えてください。
- 3. ドットネットで確実に非同期のwavを確実に再生する方法を教えてください。
- 4. アクセサ内で非同期アクションを実行する方法を教えてください。
- 5. 分度器に特定の非同期角度タスクを無視する方法を教えてください。
- 6. 既存のpromisified関数を非同期に変換する方法を教えてください。
- 7. Logstashを実行して、RDBMSからESにデータを同期させる方法を教えてください。
- 8. EFの非同期SaveChangesから非同期メソッドを安全に呼び出す方法を教えてください。
- 9. System.Threading.Timerを使用して同期しないでください。
- 10. リアクティブエクステンションを使用した非同期キュー処理
- 11. リアクティブ非同期リアクティブエクステンションを使用したタスクコード
- 12. Googleアナリティクスの非同期デザインパターンの名前とその使用場所を教えてください。
- 13. コアデータのManagedObjectContext.ExecuteFetchRequestを非同期で非同期にする方法
- 14. ディスプレイをIO操作とバックグラウンドで同期させる方法を教えてください。
- 15. ピーウィー非同期予想外のキーワードピーウィー非同期を使用している間
- 16. RxJavaで非同期メソッドを同期する方法は? RxJavaの非同期ウォーターフォール
- 17. rsyncが同期後にファイルを削除する方法を教えてください。
- 18. javascriptで非同期関数を使用するときに、ファイルを整理する方法を教えてください。
- 19. Oracle APEX - ローカル・ファイルをラップトップと同期させる方法を教えてください。
- 20. コードをクリアしてスロットを非同期で呼び出してください
- 21. UdemyはPowerPointプレゼンテーションと同期再生のビデオをマッシュアップする方法を教えてください。
- 22. 非同期待機パターンを使用してオブジェクトを初期化する方法
- 23. C#非同期操作を強制的に同期させる方法
- 24. JavaScript:同期コードで非同期FileReaderを使用するには?
- 25. TSQLを使用してユーザーのパスワードの有効期限をチェックする方法を教えてください。
- 26. WhatsApp Androidと同様に、コンテンツをプッシュせずにAppBarLayoutをアニメーション化する方法を教えてください。
- 27. 非同期でエラーを返さないでください。
- 28. 非同期/待機コードでのAsyncLocal <T>の影響を教えてください。
- 29. Aptana 3ファイルをコピーせずに他のプロジェクトでプロジェクトを使用して同期させる方法を教えてください。
- 30. Celeryタスクの実行を延期する方法を教えてください。
[ask]をお読みください。 – Enigmativity
使い捨てリソースで観測値を返す方法は、 'Observable.Using'を見てください。 – Enigmativity
私の質問に何が欠けているのか分かりません。私は喜んでそれを明確にすると思うものでそれを更新します。 – Chip