ドキュメントIDのリストがあり、Webサービスからドキュメントを取得したいとします。私はTPLの初心者で、私がgoogleに失敗したいくつかのベストプラクティスに興味があります。TPLを使用した並列I/O
PLINQのAsParallel()
はソースIDリストを分割して1つ1つのパーティション内のドキュメントを1つずつ取得するので、ここでは適切ではないことを訂正しますか?
LINQのSelect()
メソッドを使用してリストをTask<Document>
リストに変換してからWaitAll()
にする必要がありますか?
Parallel
クラスとAsParallel()
拡張メソッドの両方を使用しますTask<T>
の下に、それらはありませんか? Task(Action<Object>, Object)
過負荷に渡すのと同じように、デリゲートにローカルステートを渡すことは可能ですか?
ありがとう、非常に便利です!私の場合、サードパーティ製のAPI(Webサービス)では、get-by-idメソッドのみが公開され、ユーザーシナリオでは複数のドキュメントを取得できます。だから、おそらく、私はAsParallel()にローカルステートを渡すことができない場合は、手動のタスクのスポーンニングは私にとっては良いでしょう。 – UserControl
一度に多くの文書を渡すと、発信者にタイムアウトが表示されることがあります。また、タイムアウトが表示されない場合もありますが、同じWebサービスの_other_クライアントで重大な機能停止が発生する可能性があります。 – usr