問題タブ [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 投票する
1 に答える
235 参照

c# - SqlBulkCopy を使用して IAsyncEnumerable を書き込む方法

を返す次のメソッドがありますIAsyncEnumerable<T>

SqlBulkCopyのメソッドを使用して、その結果ストリームをデータベースに取り込みたいのですが、のオーバーロード リスト内の やその他の型にWriteToServerAsync変換する方法がわかりません。IDataReaderWriteToServerAsync

妥当なパフォーマンスが得られるのであれば、一括コピー以外のものを使用してもかまいません。

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

c# - IAsyncEnumerable の結果を待つ方法>、特定のレベルの同時実行性

アイテムのストリームに非同期ラムダを適用することによって生成されるタスクの非同期ストリームがあります。

上記のメソッドはパッケージAsyncEnumerable.RangeからSelect提供されます。System.Linq.Async

私が望む結果は、 として表される結果のストリームですIAsyncEnumerable<string>。結果は、元のタスクと同じ順序でストリーミングする必要があります。また、特定の時間にアクティブになるタスクの数が指定された数を超えないように、ストリームの列挙を調整する必要があります。

型の拡張メソッドの形で解決策が欲しいIAsyncEnumerable<Task<T>>ので、それを複数回チェーンして処理パイプラインを形成できます。TPL Dataflowパイプラインと機能的に似ていますが、流暢に表現できます。以下は、望ましい拡張メソッドのシグネチャです。

引数としても受け入れるCancellationTokenことは素晴らしい機能です。


更新:AwaitResults完全を期すために、メソッドを 2 回チェーンすることによって形成された流暢な処理パイプラインの例を含めています。このパイプラインは、PLINQ と Linq.Async の混在が可能であることを示すために、PLINQ ブロックから始まります。

期待される出力:

結果: 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20


注:振り返ってみると、AwaitResultsメソッドの名前はおそらく でMergeconcurrencyLevel引数の名前は であるはずmaxConcurrentです。その機能はRxライブラリMergeに存在する演算子に似ているからです。System.Interactive.Asyncパッケージには、を生成するという名前の演算子が含まれていますが、そのオーバーロードはいずれもソースに対して動作しません。ソース上で動作します。待機/マージ操作に必要なバッファーのサイズを明示的に制御するために、パラメーターを追加することもできます。MergeIAsyncEnumerable<T>IAsyncEnumerable<Task<T>>IEnumerable<IAsyncEnumerable<TSource>>IAsyncEnumerable<IAsyncEnumerable<TSource>>bufferCapacity

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

c# - async foreach および IAsyncEnumerable とともに ActionResult を返す方法

私はこの署名のコントローラーメソッドを持っています:

正常に動作しますが、リクエストの検証を行い、それに応じて 401、400、およびその他のコードを返す必要がありますが、これはサポートされていません。または、次の署名はコンパイルされません。

エラー:

タイプ 'Microsoft.AspNetCore.Mvc.UnauthorizedResult' を 'MyApi.Responses.MyDto' に暗黙的に変換できません

完全な方法:

何か案は?IAsyncEnumerableMicrosoft が、他のものを返す可能性/柔軟性なしで使用するように設計されているとは信じられないようです。