我使用 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 次(内部ForEach
)。
我需要为内部循环添加延迟,以便在查询 url 后等待 x 秒 - 内部循环完成 5 个请求所用的时间。
使用Thread.Sleep
不是一个好主意,因为它会阻塞整个线程,并可能阻塞其他并行任务。
有没有可能有效的替代方案?