2 つParallel.ForEach
のネストされたループを使用して、URL から情報をすばやく取得します。これはコードです:
while (searches.Count > 0)
{
Parallel.ForEach(searches, (search, loopState) =>
{
Parallel.ForEach(search.items, item =>
{
RetrieveInfo(item);
}
);
}
);
}
外側ForEach
にはたとえば 10 個のリストがあり、内側ForEach
には 5 個のリストがあります。これは、URL を 50 回クエリすることを意味しますが、同時に 5 回クエリします (inner ForEach
)。
内部ループに遅延を追加して、URL を照会した後、x 秒間 (内部ループが 5 つの要求を完了するのにかかる時間) 待機するようにする必要があります。
Thread.Sleep
完全なスレッドと、場合によっては他の並列タスクをブロックするため、使用はお勧めできません。
動作する可能性のある代替手段はありますか?