我使用2 Parallel.ForEach
嵌套循环快速检索URL的信息。这是代码:C#延迟Parallel.ForEach
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
不是一个好主意,因为它会阻塞完整的线程和可能的其他并行任务。
有没有其他方法可行?
这是害怕。你能解释一下你的意思吗?您希望内部循环在返回到外部之前等待?你意识到他们是平行的吗?如果这就是你想要的..使他们同步.. –
我理解它是正确的,在内部循环中的5只是一个例子,并没有涉及到5个同时请求? – svick