問題タブ [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.
c# - SqlBulkCopy を使用して IAsyncEnumerable を書き込む方法
を返す次のメソッドがありますIAsyncEnumerable<T>
。
SqlBulkCopy
のメソッドを使用して、その結果ストリームをデータベースに取り込みたいのですが、のオーバーロード リスト内の やその他の型にWriteToServerAsync
変換する方法がわかりません。IDataReader
WriteToServerAsync
妥当なパフォーマンスが得られるのであれば、一括コピー以外のものを使用してもかまいません。
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
メソッドの名前はおそらく でMerge
、concurrencyLevel
引数の名前は であるはずmaxConcurrent
です。その機能はRxライブラリMerge
に存在する演算子に似ているからです。System.Interactive.Asyncパッケージには、を生成するという名前の演算子が含まれていますが、そのオーバーロードはいずれもソースに対して動作しません。ソース上で動作します。待機/マージ操作に必要なバッファーのサイズを明示的に制御するために、パラメーターを追加することもできます。Merge
IAsyncEnumerable<T>
IAsyncEnumerable<Task<T>>
IEnumerable<IAsyncEnumerable<TSource>>
IAsyncEnumerable<IAsyncEnumerable<TSource>>
bufferCapacity
c# - async foreach および IAsyncEnumerable とともに ActionResult を返す方法
私はこの署名のコントローラーメソッドを持っています:
正常に動作しますが、リクエストの検証を行い、それに応じて 401、400、およびその他のコードを返す必要がありますが、これはサポートされていません。または、次の署名はコンパイルされません。
エラー:
タイプ 'Microsoft.AspNetCore.Mvc.UnauthorizedResult' を 'MyApi.Responses.MyDto' に暗黙的に変換できません
完全な方法:
何か案は?IAsyncEnumerable
Microsoft が、他のものを返す可能性/柔軟性なしで使用するように設計されているとは信じられないようです。