とループのために私は、forループハンドルは、このような20のバッチでリストに項目を追加することを書かれています。だから私は、並列ループを使うために、10〜15000個の大きなリストを使って作業しているときに、スピードアップを考えていましたか?ループの正規以外のバッチ挿入を行う行うにはどのような方法が速くやり方どこで、そこには...C#の場合と並列バッチロジック
Parallel.For(0,filteredList.Count, i=>{
i+=20;
newlist.Add(GetResponse(filteredList.Skip(i).Take(20)));
});
しかし、これは私の望む結果が得られていません:
私はこのような何かを試してみました実行時間はplain forループよりも改善されるでしょうか?
あなたがこれを行うことはできません...スタートのために、私はnewListはスレッドセーフではありませんね?どのコレクションタイプですか?また、スレッドに送信する前にクエリを具体化する必要がありますので、.Skip()。Take()。ToList()を呼び出して、そのループを渡します。 – Milney
@Milney正しいnewListはスレッドセーフではありません。それを忘れてしまった...リストの代わりに並行バッグを使用したらどうなる? – User987
@ User987なぜ*何か*を使用する。これをPLINQとして書き直し、結果をリストに集めることができます。 'filteredList'を生成するフィルタリング演算をPLINQクエリに追加して、演算全体を高速化することができます –