我使用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