問題タブ [iasyncenumerable]

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 投票する
2 に答える
1145 参照

c# - IAsyncEnumerable を安全に反復処理して、バッチでメッセージを処理するためにコレクションをダウンストリームに送信する方法

IAsyncEnumerable を使用した LINQのチャットを見て、 IAsyncEnumerablesの拡張メソッドを処理する方法についての洞察を得ることができましたが、率直に言って、実際のアプリケーション、特に私の経験レベルでは十分に詳しく説明されていませんでした。IAsyncEnumerables のドキュメントはまだ実際には存在しません

IAsyncEnumerableファイルから読み取り、ストリームで何らかの変換を行い、 を返し、次のように、任意の数のオブジェクトが取得された後にそれらのオブジェクトを下流に送信しようとしています。

ここまで読んで分かったのは、この行はs (またはs)await foreachを使用するデータに取り組んでいるため、前もってカウントしていないということです。また、スレッド間でそのデータを共有することはあまりスレッドセーフではないように見えるため、リスト変数を使用して長さチェックを行うこともためらっています。TaskValueTask

System.Linq.Async関連する拡張メソッドを使用できることを期待して、パッケージを使用しています。の形でいくつかの約束を見ることができますTakeWhileが、私がしようとしているタスクがどれほどスレッドセーフであるかについての私の理解はすべてではなく、自信を失います.

正しい方向への助けやプッシュは大歓迎です、ありがとう。

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

c# - C#8 IAsyncEnumerable 内で yield リターンを並列化する

非同期列挙子を返すメソッドがあります

そして発信者:

は高価な操作であるためDoWork、何らかの方法で並列化することをお勧めします。したがって、次のように機能します。

しかし、私は内部から利回りを返すことができないParallel.Foreachので、これを行う最善の方法は何だろうか?

返される結果の順序は関係ありません。

ありがとう。

編集:申し訳ありませんが、 のコードをいくつかDoWorkAsync省略しました。質問とはあまり関係がないため、上記のコードに入れなかったものを実際に待っていました。今すぐ更新

Edit2: DoWork私の場合、ほとんどが I/O バウンドで、データベースからデータを読み取っています。